Node.js Express处理错误函数

时间:2013-09-13 05:52:05

标签: javascript node.js express

在快递应用程序中,我研究过我们可以使用以下内容处理错误:

// app.js
app.use(function (error, req, res, next) {
    // Handle errors
});

我的问题是:

  1. 我是对的,如果出现错误,此功能将仅被称为 吗?如果没有错误,我无法调用此函数。我错过了什么吗?
  2. 是否有任何情况即使没有错误也会调用此函数?
  3. 由于

1 个答案:

答案 0 :(得分:2)

是。 arity为4的中间件(即:err, req, res, next)是错误处理程序,并在出现错误时调用。

错误可能是您的其他中间件中未被捕获的异常,或者是您在没有参数的情况下调用next(err)而不是next()时出现的明显错误。

有些情况下不会调用这些处理程序。例如:异步块中发生的错误。