javascript - 为什么我们使用 next() 函数?

标签 javascript node.js express

我们是否只在中间件或没有路由的功能中使用它?我已经在我的身份验证文件中使用了它...

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/

相关文章:

javascript - 从字段进行搜索后如何将可拖动标记添加到谷歌地图

javascript - Angular - 异步方法不返回被拒绝的 promise

node.js - Nestjs 扩展/组合装饰器?

javascript - 发送 json 对象或使用快速路由渲染 View

node.js - 如何在Nodejs中生成带有过期时间的登录代码?

javascript - 删除Hook,自动删除数据库中的所有条目

javascript - 我怎么没有正确使用分号(javascript)?

node.js - 具有 Node.js 绑定(bind)的磁盘查找表

node.js - NodeJS 和 ExpressJS : How to store user info in session after logged in?

javascript - 循环遍历 mongodb 文档 id 数组并查询该 id 并将结果存储在新数组中给出空数组