Expressjs - Fehlerbehandlung mit Middleware

Ich erstelle eine API (mit Expressjs v4) und habe in der Regel Fehler auf der Route behoben, anstatt Middleware zu verwenden. Beispielsweise

router.use('/', function(req, res, next) {
  ...
  if (err)
    return res.status(500).send({type: "serverError", message: "Something has gone wrong on our end."});
}

Ich weiß jetzt, dass Middleware der richtige Weg ist. Ich habe die ziemlich eingeschränkte Dokumentation auf der Expressjs-Site hier gesehen:http: //expressjs.com/guide/error-handling.htm aber immer noch unsicher ein paar Dinge.

Ich habe in der @ hinzugefüserver.js:

function errorHandler(err, req, res, next) {

}

Aber wie soll ich mit den verschiedenen Arten von Fehlern umgehen (400, 404, 500 usw.)?

Ich finde mich dabei, jedes Mal, wenn ein Fehler auftritt, 3 Codezeilen zu schreiben:

//A route
var err = new Error();
err.status = 404;
return next(err);

und ich kann auf den Status zugreifen mit:

function errorHandler(err, req, res, next) {
  console.log(err.status);
  if(err.status == "400")
    //do something
  else
    //etc etc
}

Sicher gibt es einen einfacheren Weg als diesen? Vermisse ich etwas?

Antworten auf die Frage(4)

Ihre Antwort auf die Frage