Javascript 在Passport文档中,var用户来自哪里

Javascript 在Passport文档中,var用户来自哪里,javascript,node.js,passport.js,Javascript,Node.js,Passport.js,我正在Passport节点 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, { mess

我正在
Passport
节点

 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);
     });
   }
 ));
这一切都很好,我理解其中的逻辑。然而,我不明白变量
用户
从何而来

User.findOne({ username:....

是从哪里来的?这没有设置在任何地方,让我有点困惑。

这个示例使用的是在别处定义的(
User
)。猫鼬模型有一个独特的特性。这主要是为了说明如何使用该策略在数据库中查找信息以验证用户身份。

arghhh。。。天哪:)学习使用节点和passport之类的东西让我想起了facebook的api(phonegap)刚问世时的样子。事实上,任何缺乏文档的东西:)是的,使用特定数据库或实现的整个假设都有点烦人,在许多示例中您会发现这一点。不过,有些人在解释上做得更好。也许可以为passport.js打开一个问题来更新它,以帮助其他人避免混淆:)耶,我同意。无论哪种方式都很有帮助。在此之前,人们可能会在不知道库的情况下发现Node.JS,只是指出Node.JS有一个
global
global对象,它被视为对象。有些库喜欢打破(可以说是被广泛接受的)模块范式和惯例,向这个
全局
对象添加您所描述的内容,以便所有脚本都可以访问,而不管它们是否需要
包含脚本。