Я пытаюсь использовать метод экземпляра Sequelize для проверки пароля при попытке входа в систему. Я определил модель пользователя как:Невозможно обработать методы экземпляра exquery
var User = sequelize.define('User',{
id:{
type:DataTypes.BIGINT,
autoIncrement: true,
allowNull: false,
primaryKey:true
},
username:{
type:DataTypes.STRING,
unique:true
},
password:{
type: DataTypes.STRING
},
...
},
{
classMethods:{
associate:function(models){
...
}
}
},
{
instanceMethods:{
validatePassword:function(password){
return bcrypt.compareSync(password, this.password);
}
}
}
);
return User;
}
В моей входа маршрута я сделать следующее:
- 1) Получить имя пользователя & пароль из тела запроса
- 2) Проверьте, если имя пользователя существует в база данных
- 3) Если пользователь существует, получить объект пользователя и сравнить отправленный пароль с хешированным паролем в базе данных с использованием метода validatePassword.
Вот соответствующий код
var username = req.body.username || "";
var password = req.body.password || "";
models.User.findOne({ where: {username: username} }).
then(
function(user) {
if(user){
console.log(user.validatePassword(password));
}
....
Каждый раз, когда я пытаюсь войти я получаю следующее сообщение об ошибке
[TypeError: user.validatePassword is not a function]
Что я делаю неправильно?
Вы уверены, что 'user' не равно нулю? –
@Hopeful Llama nope я могу *** console.log (пользователь) *** и получить всю информацию –