Expressjs 如何决定调用哪个错误处理程序.如果我们有多个错误句柄



我只是想知道当我们有多个错误处理程序时,快递如何决定调用哪个错误处理程序(next(err((。

如果您有多个错误处理程序,将按照您在 .use 语句中放置它们的顺序调用它们。每个错误处理程序都必须执行next(err)才能传递错误。

摘自 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 })
}

因此,使用 next(err) 语句在处理程序之间传递错误。在该处理程序中,您可以决定该怎么做。例如,您可以检查特定错误并仅对该特定错误执行操作。

用于错误处理的 ExpressJS 文档

最新更新