MongoDB
 sql >> Datenbank >  >> NoSQL >> MongoDB

Ich möchte, dass meine Pre('save')-Mungo-Funktion nur einmal ausgeführt wird

Sie könnten isModified verwenden Methode in Ihrem 'Passwort'-Feld.

Ich verwende es auf diese Weise, führe bcrypt nur aus, wenn die Kennworteigenschaft geändert wurde:

UserSchema.pre('save', function (next) {
  var user = this;

  if (user.isModified('password')) {
    bcrypt.genSalt(10, (err, salt) => {
      bcrypt.hash(user.password, salt, (err, hash) => {
        user.password = hash;
        next();
      });
    });
  } else {
    next();
  }
});