未标记,未指定“;“错误”;事件passport[Node.js]中的(不正确的参数)

未标记,未指定“;“错误”;事件passport[Node.js]中的(不正确的参数),node.js,passport.js,Node.js,Passport.js,我已使用passport进行验证,并将值保存为资源集合,并且正在获取未捕获的未指定“错误”事件。(不正确的论点)。但我只使用了相同的电子邮件名称和密码 下面是我的passport.js var LocalStrategy = require('passport-local').Strategy; var mongoose = require('mongoose'); var User = require('../app/models/db_model'); mo

我已使用passport进行验证,并将值保存为资源集合,并且正在获取未捕获的未指定“错误”事件。(不正确的论点)。但我只使用了相同的电子邮件名称和密码

下面是我的passport.js

  var LocalStrategy   = require('passport-local').Strategy;
    var mongoose = require('mongoose');
    var User = require('../app/models/db_model');

    module.exports =function(passport){
        passport.serializeUser(function(user, done) {
            done(null, user.id);
            //console.log("ser"+user);
        });

        passport.deserializeUser(function(id, done) {
            User.findById(id, function(err, user) {
                //console.log("deser"+user);
                done(err, user);
            });
        });

        passport.use('local-userlogin', new LocalStrategy({
            usernameField : 'email',
            passwordField : 'password',
            passReqToCallback : true 
        },
        function(req, email, password, done) { 

            User.findOne({ 'email' :  email}, function(err, user) {

                console.log(user);
                if (err)
                    return done(err);

                if (!user)
                    return done(null, false, req.flash('loginMessage', 'Oops! Invalid Username.'));


                if (!user.validPassword(password))
                    return done(null, false, req.flash('loginMessage', 'Oops! Invalid Password.'));

                return done(null, user);


            });

        }));
    }

请在这个问题上帮助我

我在使用带有Bcrypt[Bcrypt nodejs]的Passport时收到了相同的错误

在我的用户模型中,我有

userSchema.methods.encryptPassword = password => {
    return bcrypt.hashSync(password, bcrypt.genSaltSync(1), null); 
}

userSchema.methods.validPassword = password => {
    return bcrypt.compareSync(password, this.password); 
} 
然后我用

userSchema.methods.encryptPassword = function(password) {
    return bcrypt.hashSync(password, bcrypt.genSaltSync(5), null);
}

userSchema.methods.validPassword = function(password) {
    return bcrypt.compareSync(password, this.password);
}
这就消除了错误。 这似乎意味着
bcrypt nodejs
不喜欢箭头函数


希望这有帮助

定义方法时使用匿名函数而不是箭头函数。类似于:
UserSchema.methods.validPassword=function(params){…}
我对这项技术非常陌生,我必须在哪里使用它?这应该是公认的答案。我还遇到了这个错误,发现即使@2019年7月-bcrypt-nodejs仍然不允许使用箭头函数。我认为我的异步函数有问题,但结果证明它只是bcrypt nodejs中的arrow函数