用户身份validation错误 – Passport.js

即时通讯使用passport.js(本地策略)来validation用户,但我收到以下错误:

Unhandled "error" event. (Incorrect arguments) 

详细的错误消息:

在这里输入图像说明

index.js文件:

 const {register: registerUser, login: loginUser} = require('../controllers/authentication'); // login router .route('/login') .post(loginUser); 

Authentication.js文件:

 // login function let login = (req,res) => { if(!req.body.email || !req.body.password){ sendJsonResponse(res, 400, {"message": "All fields required"}); return; } passport.authenticate('local', (err, user, info) => { let token; if(err){ sendJsonResponse(res, 404, err); return; } if(user){ token = user.generateJwt(); sendJsonResponse(res, 200, { "token": token }); } else { sendJsonResponse(res, 401, info); } })(req,res); }; 

Passport.js文件:

 const passport = require('passport'); const LocalStrategy = require('passport-local').Strategy; const mongoose = require('mongoose'); const User = mongoose.model('Users'); passport.use(new LocalStrategy({ usernameField: 'email', }, function (email, password, done) { User.findOne({'email': email}, 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) }); } )); 

我似乎无法弄清楚问题可能是什么。 我已经尝试检查typeof电子邮件和密码,他们确实是Strings 。 有谁知道可能是什么问题。