【发布时间】:2014-04-12 16:49:21
【问题描述】:
我是节点的新手,所以如果我不明白,请原谅我。 在 node.js express 应用程序的 app.get 函数中,我们通常将路由和视图作为参数传递 例如
app.get('/users', user.list);
但在passport-google example 中我发现他们将其称为
app.get('/users', ensureAuthenticated, user.list);
其中 ensureAuthenticated 是一个函数
function ensureAuthenticated(req, res, next) {
if (req.isAuthenticated()) { return next(); }
res.redirect('/login')
}
简而言之,这意味着有多个回调在运行时被串联调用。我尝试添加更多功能以使其看起来像
app.get('/users', ensureAuthenticated, dummy1, dummy2, user.list);
我发现 ensureAuthenticated、dummy1、dummy2、user.list 被连续调用。
对于我的特定要求,我发现以上述形式顺序调用函数是非常优雅的解决方案,而不是使用异步系列。有人可以解释一下它是如何工作的,以及我如何实现类似的功能。
【问题讨论】:
标签: node.js express asynccallback