Я пытался преобразовать свой код из обратного вызова в обещание.Но после получения моей локальной стратегии паспорта в обещании у меня появляется ошибка, которая говорит, что мой пароль не определен.Не могли бы вы заглянуть в мой код и определить, где я ошибся?
exports.newLocalStrategy=new localStrategy({
usernameField: 'username',
passwordField: 'password'
},(username,done)=>{
User.findOne({username})
.then(user =>{
if(!user) return done(null, null, console.error('user or email incorrect'));
return done(null, user);
})
.catch(err =>{
return done(err, null);
});
comparePassword(password,user[0].password)
.then(isMatch=>{
if (isMatch) return (done, null);
})
.catch(err=>{
console.error(err);
return done(err, null);
})
});
let comparePassword =new Promise((candidatePassword, hash, callback)=>{
bcrypt.compare(candidatePassword, hash, (err, isMatch)=>{
if (err) return callback(err);
callback(null, isMatch);
});
});
ошибка исходит от comparePassword(password,user[0].password)
строка