sequelize.js
Modifica gli attributi nel hook beforeCreate
Ricerca…
introduzione
Potremmo aver bisogno di modificare gli attributi prima che venga creato il record. Il mio caso d'uso era la crittografia della password quando l'utente è stato creato.
Il documento Hooks è qui http://docs.sequelizejs.com/en/v3/docs/hooks/#instance-hooks . Documenta il modo di usarlo con una libreria / funzione che restituisce una Promise . Ma il caso d'uso con una richiamata non è chiaramente documentato.
Sintassi
- beforeCreate (esempio)
- beforeCreate (istanza, opzioni, fn)
Esempio di lavoro con una libreria che non usa Promise
function cryptPassword(password, callback) {
bcrypt.genSalt(SALT_WORK_FACTOR, function(err, salt) {
if (err)
return callback(err);
bcrypt.hash(password, salt, null, function(err, hash) {
return callback(err, hash);
});
});
}
User.beforeCreate((user, options, cb) => {
cryptPassword(user.password, (err, hash) => {
if (err) return cb(err);
user.password = hash;
// invoking the finish callback is important!
return cb(null, options);
});
});
Esempio di lavoro con una libreria che non usa Promise
User.beforeCreate(function(user, options) {
return hashPassword(user.password).then(function (hashedPw) {
user.password = hashedPw;
});
})
Modified text is an extract of the original Stack Overflow Documentation
Autorizzato sotto CC BY-SA 3.0
Non affiliato con Stack Overflow