Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/370.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 新LocalStrategy上的passport.js返回类型错误_Javascript_Node.js_Passport.js - Fatal编程技术网

Javascript 新LocalStrategy上的passport.js返回类型错误

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

在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.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'));