Я пытаюсь написать некоторый код, и он работает, но я столкнулся с проблемой, когда bcrypt
использует обратный вызов, и я пытаюсь решить его с обещанием. Вот код:
`UserSchema.statics.findByData = function(username,password) {
var User = this;
User.findOne({username}).then((user) => {
if(!user){
return Promise.reject();
}
return new Promise((resolve,reject) => {
bcrypt.compare(password,user.password,(err,res) => {
if(res){
resolve(user);
}else {
reject();
}
});
});
});
};`
Я вызываю эту функцию отсюда:
User.findByData(body.username,body.password).then((user) => {
res.send(user);
}).catch((e) => {
res.status(400).send();
});
Я получаю сообщение об ошибке: "Cannot read property" then "undefined.
Почему я получаю эту ошибку?