Я не могу получить доступ к this.getDataValue в модели sequelize, но в документации сказано, что мы можем получить к нему доступ, я использую SEQUELIZE v5. Я не знаю, что мне делать, но я многое выяснил.
module.exports = (sequelize, DataTypes) => {
var User = sequelize.define('User', {
email: DataTypes.STRING,
name: DataTypes.STRING,
password : DataTypes.STRING,
is_active : DataTypes.BOOLEAN,
}, {});
User.associate = function(models) {
// associations can be defined here
};
User.toJSON = function () {
var values = Object.assign({}, this.get());
delete values.password;
return values;
}
User.comparePassword = async function (email, pw) {
let err, pass;
//ERROR RIGHT HERE
if(!this.getDataValue('password')) TE('password not set');
[err, pass] = await to(bcrypt_p.compare(pw, this.password));
if(err) TE(err);
if(!pass) TE('invalid password');
return this;
}
User.getJWT = function () {
return "Bearer "+jwt.sign({id:this.id}, "BAMBANG", {expiresIn: 86400});
};
User.toWeb = function () {
let json = this.toJSON();
return json;
};
return User;
};