Voglio salvare una password con hash. Sto utilizzando un setterMethod per questo:Come posso eseguire le convalide del modello prima di setterMethod in Sequelize?
module.exports = (sequelize, DataTypes) ->
sequelize.define 'User',
# other model fields [...]
password:
type: DataTypes.STRING
validate: notEmpty: msg: 'You need to set a password.'
set: (pw) ->
salt = bcrypt.genSaltSync(10)
hash = bcrypt.hashSync(pw, salt)
@setDataValue('password', hash)
Il setter viene eseguito per primo. Una password di stringa vuota (''
) è sottoposta a hash in una non vuota (ad esempio $2a$10$pDDIGnV.r47i9YOv0Fls/euQ0yYvfyq8T1SyP9VRQsTUAqptNmxXO
).
Quando il validatore convalida, la password non è più vuota.
Come posso convalidare la password prima del setter?
Ho esaminato hooks ma non menzionano neanche gli setter.
Sto usando [email protected]
.