Passport中的自动failureRedirect

我的代码有问题。 当我试图login没有插入用户名和密码

POST / user / login 302 1.289 ms – 32 GET / user / hehehehehe 404 6.310 ms – 1272

如果我尝试login只有login它是相同的结果

如果我尝试使用用户名和密码login正确或不正确

500内部服务器错误

有人可以告诉我,哪里出错? 那是第一次加载failureRedirect。 在尝试login后我应该检查什么? router.post('/ create',函数(req,res,next){

var newUser = { username: req.body.username, password: req.body.password } console.log(req.body) req.checkBody('username', 'Login is required').notEmpty(); req.checkBody('password', 'Password is required').notEmpty(); var errors = req.validationErrors(); if (errors) { console.log(errors) res.send(errors); } else { bcrypt.hash(newUser.password, saltRounds, function (err, hash) { if (err) { console.log(err) } else { newUser.password = hash; var user = new User(newUser); user.save() .then(function (User) { res.send(User); }) } }); req.flash('success_msg', 'You are registered and can now login'); //res.redirect('/'); } }); passport.use(new LocalStrategy( function(username, password, done) { User.getUserByUsername(username, function(err, user){ if(err) throw err; if(!user){ return done(null, false, {message: 'Unknown User'}); } User.comparePassword(password, user.password, function(err, isMatch){ if(err) throw err; if(isMatch){ return done(null, user); } else { return done(null, false, {message: 'Invalid password'}); } }); }); })); passport.serializeUser( function(user, done) { console.log('eheheheheh'); done(null, user.id); }); passport.deserializeUser( function(id, done) { User.getUserById(id, function(err, user) { console.log('eheheheheh'); done(err, user); }); }); router.post('/login', passport.authenticate('local', { successRedirect:'hahahha', failureRedirect:'hehehehehe', failureFlash: true }), function(req, res) { console.log('yyy'), res.redirect('dydydydy'); }); 

重要事项首先加载哪些函数? 1 – / login然后这个代码?

 passport.use(new LocalStrategy( function(username, password, done) { User.getUserByUsername(username, function(err, user){ if(err) throw err; if(!user){ return done(null, false, {message: 'Unknown User'}); } User.comparePassword(password, user.password, function(err, isMatch){ if(err) throw err; if(isMatch){ return done(null, user); } else { return done(null, false, {message: 'Invalid password'}); } }); }); })); 

这里可能会有什么错误?