如何访问传递给Node中next()函数的值

时间:2013-12-04 12:42:33

标签: javascript node.js express middleware

我正在使用 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()

1 个答案:

答案 0 :(得分:2)

当您将错误参数传递给next时,Express会调用您安装的任何错误中间件处理程序。错误中间件函数有四个参数,因此您将自己的处理程序安装为:

app.use(function(err, req, res, next) {
    // handle the err from a previous middleware's next(err) call
});

您通常会在中间件链的末尾添加它,以便它处理所有其他中间件的错误。

有关此问题的Express文档,请参阅here