Javascript 新LocalStrategy上的passport.js返回类型错误
在node.js上运行passport并在启动时返回Javascript 新LocalStrategy上的passport.js返回类型错误,javascript,node.js,passport.js,Javascript,Node.js,Passport.js,在node.js上运行passport并在启动时返回 /Users/josh/Dropbox/Development/headstart/config/middleware.js:27 passport.use(新的LocalStrategy(函数)(用户名、密码、完成){ ^ TypeError:对象不是函数 在函数中。(/Users/josh/Dropbox/Development/headstart/config/middleware.js:27:18) 在Function.app.co
/Users/josh/Dropbox/Development/headstart/config/middleware.js:27
passport.use(新的LocalStrategy(函数)(用户名、密码、完成){
^
TypeError:对象不是函数
在函数中。(/Users/josh/Dropbox/Development/headstart/config/middleware.js:27:18)
在Function.app.configure(/Users/josh/Dropbox/Development/headstart/node_modules/express/lib/application.js:391:61)
在module.exports(/Users/josh/Dropbox/Development/headstart/config/middleware.js:6:7)
at对象。(/Users/josh/Dropbox/Development/headstart/index.js:32:31)
我的代码似乎很好,正在通过测试
我的中间件代码
```
log
从哪里来?使用winston的自定义记录器,这不是整个文件,只是与passport相关的内容
passport.use(new LocalStrategy(function(username,password,done){
log.info(username+"//"+password+" is trying to login as local.");
var userModel = mongoose.model('users',userSchema);
userModel.findOne({'username':username})
.exec(function(err,puser){
if(err){log.info(err.stack);}
if(!puser){
log.info("user not found.");
return done(null, false, { message: 'Unknown user ' + username });
}
if (password!==puser.password) {
log.info("password invalid.");
return done(null, false, { message: 'Invalid password' });
}
return done(null, puser);
});
}));
passport.serializeUser(function(user, done) {
done(null, user.id);
});
passport.deserializeUser(function(id, done) {
User.findById(id, function(err, user) {
done(err, user);
});
});
app.use(express.bodyParser());
app.use(express.session({ secret: 's3cr3t' }));
app.use(passport.initialize());
app.use(passport.session());
app.use(express.methodOverride());
app.use(app.router);
app.use(logErrors);
app.use(clientErrorHandler);
app.use(errorHandler);
app.engine('ejs', require('ejs-locals'));
app.set('view engine', 'ejs');
app.set('views', '/app/views');
app.use(express.static('/public'));
app.use(express.favicon('/public/img/favicon.ico'));