MongoDB
 sql >> Base de Dados >  >> NoSQL >> MongoDB

Eu quero que minha função mangusto pre('save') opere apenas uma vez


Você pode usar isModified método em seu campo 'senha'.

Eu uso desta forma, só executo o bcrypt se a propriedade de senha foi alterada:
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();
  }
});