ExpressJS - Fehlerbehandlung

Die Fehlerbehandlung in Express erfolgt mit Middleware. Diese Middleware hat jedoch besondere Eigenschaften. Die Fehlerbehandlungs-Middleware wird auf die gleiche Weise wie andere Middleware-Funktionen definiert, mit Ausnahme der FehlerbehandlungsfunktionenMUST have four arguments statt drei - err, req, res, next. Um beispielsweise eine Antwort auf einen Fehler zu senden, können wir Folgendes verwenden:

app.use(function(err, req, res, next) {
   console.error(err.stack);
   res.status(500).send('Something broke!');
});

Bisher haben wir Fehler in den Routen selbst behandelt. Mit der Middleware zur Fehlerbehandlung können wir unsere Fehlerlogik trennen und entsprechende Antworten senden. Die next () -Methode, die wir in der Middleware besprochen haben, führt uns zur nächstenmiddleware/route handler.

Für die Fehlerbehandlung haben wir die next(err)Funktion. Ein Aufruf dieser Funktion überspringt die gesamte Middleware und ordnet uns den nächsten Fehlerbehandler für diese Route zu. Lassen Sie uns dies anhand eines Beispiels verstehen.

var express = require('express');
var app = express();

app.get('/', function(req, res){
   //Create an error and pass it to the next function
   var err = new Error("Something went wrong");
   next(err);
});

/*
 * other route handlers and middleware here
 * ....
 */

//An error handling middleware
app.use(function(err, req, res, next) {
   res.status(500);
   res.send("Oops, something went wrong.")
});

app.listen(3000);

Diese Middleware zur Fehlerbehandlung kann strategisch nach Routen platziert werden oder Bedingungen enthalten, um Fehlertypen zu erkennen und den Clients entsprechend zu reagieren. Das obige Programm zeigt die folgende Ausgabe an.