Как Expressjs решает, какой обработчик ошибок вызвать. если у нас есть несколько дескрипторов ошибок - PullRequest
1 голос
/ 21 июня 2019

Мне просто любопытно знать, что как express решает, какой обработчик ошибок вызвать (next (err)), когда у нас есть несколько обработчиков ошибок.

1 Ответ

2 голосов
/ 21 июня 2019

Если у вас есть несколько обработчиков ошибок, они будут вызываться в порядке, указанном вами в выражениях .use. Каждый обработчик ошибок должен делать следующее (ошибаться), чтобы передать ошибку.

Взято из документации по expressjs:

app.use(logErrors)
app.use(clientErrorHandler)
app.use(errorHandler)

В качестве примера из документации:

function errorHandler (err, req, res, next) {
  if (res.headersSent) {
    return next(err)
  }
  res.status(500)
  res.render('error', { error: err })
}

Итак, ошибка передается от обработчика к обработчику с помощью следующего оператора (err). И внутри этого обработчика вы решаете, что делать. Например, вы можете проверить наличие конкретной ошибки и действовать только с этой конкретной ошибкой.

документация expressjs для обработки ошибок

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...