Expressjs - обработка ошибок с помощью промежуточного программного обеспечения

Я создаю API (использую Expressjs v4) и, как правило, имею дело с ошибками в маршруте, а не с помощью промежуточного программного обеспечения. Например:

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

Теперь я понимаю, что промежуточное ПО - это «путь». Я видел довольно ограниченную документацию на сайте Expressjs здесь:http://expressjs.com/guide/error-handling.html но все еще неуверен в нескольких вещах.

Я добавил вserver.js:

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

}

но как я должен обрабатывать различные типы ошибок (400 404 500 и т. д.)?

Я пишу 3 строки кода каждый раз, когда возникает ошибка:

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

и я могу получить доступ к статусу, используя:

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

Конечно, есть более простой способ, чем этот? Я что-то пропустил?

Ответы на вопрос(2)

Ваш ответ на вопрос