sequelize.js
Ändern Sie die Attribute in beforeCreate-Hook
Suche…
Einführung
Möglicherweise müssen Sie die Attribute ändern, bevor der Datensatz erstellt wird. Mein Anwendungsfall bestand darin, das Kennwort zu verschlüsseln, wenn der Benutzer erstellt wurde.
Hooks doc ist hier http://docs.sequelizejs.com/de/v3/docs/hooks/#instance-hooks . Es dokumentiert die Verwendung mit einer Bibliothek / Funktion, die ein Promise zurückgibt. Der Anwendungsfall mit einem Rückruf ist jedoch nicht eindeutig dokumentiert.
Syntax
- beforeCreate (Instanz)
- beforeCreate (Instanz, Optionen, Fn)
Beispiel für das Arbeiten mit einer Bibliothek, die Promise nicht verwendet
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);
});
});
Beispiel für das Arbeiten mit einer Bibliothek, die Promise nicht verwendet
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
Lizenziert unter CC BY-SA 3.0
Nicht angeschlossen an Stack Overflow