我正在使用 Node 和 Express.js 为我正在处理的项目编写后端。
中间件中使用 next()
函数移动到中间件链中的下一个部分,最后移动到app.VERB()
函数。在哪里以及如何(进一步下线)我可以访问这个变量?
示例代码:
app.use(function (req, res, next) {
User.findOne({
'email': emailValue
}, function (err, foundUser) {
if (err) return next(err);
// Else do something
}
});
});
什么有权访问err
传递给next()
?
答案 0 :(得分:2)
当您将错误参数传递给next
时,Express会调用您安装的任何错误中间件处理程序。错误中间件函数有四个参数,因此您将自己的处理程序安装为:
app.use(function(err, req, res, next) {
// handle the err from a previous middleware's next(err) call
});
您通常会在中间件链的末尾添加它,以便它处理所有其他中间件的错误。
有关此问题的Express文档,请参阅here。