我試圖創建自定義保存方法,以便不將用戶密碼存儲爲純文本。但似乎無論我做什麼來改變this.values的價值都沒有任何影響。這是我的sequelize型號:無法更改此屬性
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
}}
}
);};
第一個日誌聲明證實,裏面的代碼,如果isNewRecord運行,並生成一個散列,第二個日誌語句和輸出表明,這種特性保持不變,從他們的原始值。有誰知道這是爲什麼,或者我該如何解決這個問題?
我可以在發佈請求後立即做到這一點,但我寧願這樣做,如果可能的話。
檢查'this.values'附近第一個日誌 – XMen
@XMen一樣,一個在其下方。 – DNN
嘗試設置'this.password'而不是'this.values.password' – XMen