我试图创建一个自定义保存方法,以免将用户密码存储为纯文本。但似乎我所做的任何改变 this.values 的值都没有任何效果。这是我的续集模型:
module.exports= function (sequelize, DataTypes){
return sequelize.define("Users",{
username: DataTypes.STRING,
password: DataTypes.STRING,
first_name: DataTypes.STRING,
last_name: DataTypes.STRING,
email: DataTypes.STRING,
is_admin: DataTypes.BOOLEAN,
active: DataTypes.BOOLEAN
},{ instanceMethods: {
user_save: function(){
if(this.isNewRecord){
var salt = 'blahblahblah';
var key128Bits = CyrptoJS.PBKDF2(this.values.password, salt, { keySize: 128/32 });
delete this.values.password;
this.values.password = key128Bits.toString()
console.log('new record ' + key128Bits.toString())
}
console.log(this.values)
this.save();
return
}}
}
);};
第一条日志语句确认 if isNewRecord 中的代码正在运行,并生成一个哈希,第二条日志语句和输出表明 this 的属性与其原始值保持不变。有谁知道这是为什么或我该如何解决这个问题?
我可以在发布请求后立即执行此操作,但如果可能的话,我宁愿这样做。