sql >> Base de Datos >  >> NoSQL >> MongoDB

Quiero que mi función de mangosta pre('guardar') funcione solo una vez

Podría usar isModified método en su campo 'contraseña'.

Lo uso de esta manera, solo ejecuto bcrypt si se cambió la propiedad de la contraseña:

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();
  }
});