我们是否只在中间件或没有路由的功能中使用它?我已经在我的身份验证文件中使用了它...
function ensureAuthenticated(req, res, next){
if(req.isAuthenticated()){
return next();
} else {
req.flash('error_msg' , 'Please login First...')
res.redirect('/users/login');
}
}
最佳答案
执行它是为了执行管道中的下一个中间件。如果您不手动执行它,您可能会将它传递给另一个为您执行它的模块。否则,如果你不执行 next
,你就切断了“管道”,即你的是最后一个运行的中间件。
在您的情况下,当用户通过身份验证时调用 next()
是非常有意义的。这会将控制权传递给下一个中间件。在您已经确定用户未通过身份验证的情况下,不调用 next()
也是有意义的,因为在大多数情况下,您不希望“管道”来执行。
是的,next()
由中间件或旨在由中间件调用的模块使用。
我希望这能回答您的问题。
关于javascript - 为什么我们使用 next() 函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46969481/