8
我有一個簡單的用戶模型如下:更新前似乎並沒有被稱爲
'use strict';
let hashPassword = (user, options) => {
if (!user.changed('password')) { return; }
return require('bcrypt')
.hash(user.getDataValue('password'), 10)
.then(hash => user.setDataValue('password', hash));
};
module.exports = (sequelize, DataTypes) => {
const User = sequelize.define('User', {
username: {allowNull: false, type: DataTypes.STRING, unique: true},
email: {allowNull: false, type: DataTypes.STRING, unique: true},
password: {allowNull: false, type: DataTypes.STRING, unique: false},
}, {
hooks: {
beforeCreate: hashPassword,
beforeUpdate: hashPassword
}
});
return User;
};
它工作得非常好用戶創建,但beforeUpdate
鉤似乎不工作或叫,密碼以純文本形式保存在數據庫中。
它從哪裏來,它如何被固定?
看起來你是對的,我使用'db.user.update(...,{where:{id:req.params.userId}});'。非常感謝你 – Magix
很高興我能提供幫助。如果我回答了您的問題,請標記爲已接受。 –
你可以發佈示例代碼,因爲我找不到實際參數 –