Im Allgemeinen wird während des Entwicklungsprozesses der Erfolg oder Misserfolg der Schnittstellenanforderung nicht basierend auf dem HTTP-Code bestimmt, sondern das Codefeld wird basierend auf den von der Anforderung zurückgegebenen Daten hinzugefügt. 1. Vergleich der zurückgegebenen Datenformate1. Direkt zurückgegebenes Datenformat { "Ich würde": 1, "uuid": "cbbe7abc-b95e-48a0-8d24-b1ac93c45328", "Name": "Husky 1", "Alter": 12, "Farbe": null, "createAt": "2019-07-25T09:13:30.000Z", "updateAt": "2019-07-25T09:13:30.000Z" } 2. Daten zurückgeben, nachdem wir sie selbst verpackt haben { Code: 0, Meldung: "Anfrage erfolgreich", Daten: { "Ich würde": 1, "uuid": "cbbe7abc-b95e-48a0-8d24-b1ac93c45328", "Name": "Husky 1", "Alter": 12, "Farbe": null, "createAt": "2019-07-25T09:13:30.000Z", "updateAt": "2019-07-25T09:13:30.000Z" } } 2. Alle Fehleranforderungen abfangen und das Rückgabeformat vereinheitlichen1. Erstellen Sie einen Filter mit dem Befehl Nest-GF-Filter/httpException 2. Filtercode importieren { ArgumentsHost, Fangen, AusnahmeFilter, HttpException, HttpStatus, Logger, } von '@nestjs/common'; @Catch(HttpException) Exportklasse HttpExceptionFilter implementiert ExceptionFilter { Fang(Ausnahme: HttpException, Host: ArgumentsHost) { const ctx = host.switchToHttp(); const Antwort = ctx.getResponse(); const request = ctx.getRequest(); const Nachricht = Ausnahme.Nachricht.Nachricht; Logger.log('Fehleraufforderung', Nachricht); const Fehlerantwort = { Daten: { Fehler: Nachricht, }, // Alle Fehlermeldungen abrufen message: 'Anforderung fehlgeschlagen', Code: 1, // benutzerdefinierter Code url: request.originalUrl, // falsche URL-Adresse}; Konstantenstatus = Ausnahmeinstanz von HttpException ? Ausnahme.getStatus() : HttpStatus.INTERNAL_SERVER_ERROR; // Den zurückgegebenen Statuscode und den Anforderungsheader festlegen und Fehlerinformationen senden response.status(status); Antwort.header('Inhaltstyp', 'Anwendung/json; Zeichensatz=utf-8'); Antwort.Senden(Fehlerantwort); } } 3. Globale Registrierung in main.ts ... importiere { HttpExceptionFilter } aus './filters/http-exception.filter'; asynchrone Funktion Bootstrap() { ... // Fehlerfilter global registrieren app.useGlobalFilters(new HttpExceptionFilter()); } Bootstrap(); 4. Test, zurückgegebene Fehlerinformationen { "Statuscode": 400, "error": "Ungültige Anfrage", "Daten": { "Nachricht": [ { "age": "Erforderliche Ganzzahl" } ] }, "message": 'Anfrage fehlgeschlagen', "Code": 1, "URL": "/API/v1/Cat" } 3. Vereinheitlichen Sie die Rückgabedaten einer erfolgreichen Anfrage1. Erstellen Sie einen Interceptor src/interceptor/transform.interceptor.ts 2. Abfangcode importieren { Injizierbar, NestInterceptor, Anrufbearbeiter, Ausführungskontext, } von '@nestjs/common'; importiere { map } aus 'rxjs/operators'; importiere { Observable } von 'rxjs'; Schnittstelle Antwort<T> { Daten: T; } @Injizierbar() Exportklasse TransformInterceptor<T> implementiert NestInterceptor<T, Response<T>> { abfangen( Kontext: Ausführungskontext, weiter: CallHandler<T>, ): Beobachtbar<Antwort<T>> { returniere nächsten.handle().pipe( Karte (Daten => { zurückkehren { Daten, Code: 0, Meldung: „Anfrage erfolgreich“, }; }), ); } } 3. Globale Registrierung ... importiere { TransformInterceptor } von './interceptor/transform.interceptor'; asynchrone Funktion Bootstrap() { ... // Global registrierter Interceptor app.useGlobalInterceptors(new TransformInterceptor()); ... } Bootstrap(); 4. Rückgabedaten testen { "Daten": { "Ich würde": 1, "uuid": "cbbe7abc-b95e-48a0-8d24-b1ac93c45328", "Name": "Husky 1", "Alter": 12, "Farbe": null, "createAt": "2019-07-25T09:13:30.000Z", "updateAt": "2019-07-25T09:13:30.000Z" }, "Code": 0, "message": "Anfrage erfolgreich" } Dies ist das Ende dieses Artikels über die Kapselungsimplementierung des von nestjs an das Front-End zurückgegebenen Datenformats. Weitere relevante Inhalte zum von nestjs an das Front-End zurückgegebenen Datenformat finden Sie in früheren Artikeln auf 123WORDPRESS.COM oder durchsuchen Sie die verwandten Artikel weiter unten. Ich hoffe, Sie werden 123WORDPRESS.COM auch in Zukunft unterstützen! Das könnte Sie auch interessieren:
|
<<: Eine kurze Diskussion über die vorläufige Praxis der Docker-Container-Verbindung
>>: Tutorial zur Nginx-Standortkonfiguration von Grund auf
<p><b>Dies ist eine fette Schriftart&l...
<br />In diesem Artikel wurden die verschied...
Beim Anpassen der Softwareinstallation müssen Sie...
Inhaltsverzeichnis 1. untergeordneter Prozess 2. ...
In diesem Blogbeitrag geht es um eine Schwierigke...
Kürzlich habe ich festgestellt, dass selbst wenn d...
Sehen Sie sich die 100 höchsten Punktzahlen der S...
Vorwort: Ich habe oft von Datenbankparadigmen geh...
1. Laden Sie die erforderliche Kernel-Version her...
Entwicklungsumgebungsfenster Entwicklungstools Vi...
Körperteil: <button>Licht ein-/ausschalten&...
Vorwort Tipp: Hier können Sie den ungefähren Inha...
Einführung in Vue und Vue-Router <script src=&...
Bei der Arbeit an mobilen Seiten werden in letzte...
Inhaltsverzeichnis Überblick Was ist die O-Notati...