【发布时间】:2014-11-27 16:17:57
【问题描述】:
在护照[配置身份验证]文档中,它有一个看起来相当吓人的功能,它使用了神秘的功能“完成”。
passport.use(new LocalStrategy(
function(username, password, done) {
User.findOne({ username: username }, function (err, user) {
if (err) { return done(err); }
if (!user) {
return done(null, false, { message: 'Incorrect username.' });
}
if (!user.validPassword(password)) {
return done(null, false, { message: 'Incorrect password.' });
}
return done(null, user);
});
}
));
现在,在express documentation 中有很多方法可以传递名为 next 的内容。
app.use(function(err, req, res, next){
console.error(err.stack);
res.status(500).send('Something broke!');
});
这就是express和passport这两个框架的区别吗?还是他们在做两件不同的事情?
【问题讨论】:
-
一般来说,参数的命名对其功能没有任何影响
-
所以他们做同样的事情,只是为这两个不同的框架以两种不同的方式记录?
-
我猜它们都是带有
err参数约定的典型节点回调,所以没有什么“可怕”或“奇怪”。护照是否对您传递的值做不同的事情而不是快递(或者它是否只是传递它们)我不知道,但图书馆的文档应该这样做。 -
护照回调在verify callback section下的(稍微)更详细的描述
-
return语句的目的是什么?只是为了避免else if吗?done会返回有用的信息吗?
标签: javascript node.js express passport.js