предварительно обновить, когда я обновлю свой пароль в Редактировать профиль - PullRequest
0 голосов
/ 20 мая 2018

Здравствуйте, мой предварительный сохранить его работает, когда я регистрируюсь, но предварительное обновление не работает, когда я меняю свой профиль в editprofile .. может кто-нибудь знает, как это исправить ..

userSchema.pre('update', function(next) {                                                                                                                                                                                                                                                                                                                                                                                                                           
             this.update({},{ $set: {password: bcrypt.hashSync(password, bcrypt.genSaltSync(8),null) } });   

    next()                                                                                                                                                                          
});  

userSchema.pre('save', function(next) {                                                                                                                                        
    if(this.password) {                                                                                                                                                                                                                                                                                      
        this.password  = bcrypt.hashSync(this.password, bcrypt.genSaltSync(8),null);                                                                                                             
    }                                                                                                                                                                          
    next()                                                                                                                                                                     
}); 

1 Ответ

0 голосов
/ 20 мая 2018

Вы можете использовать findOneAndUpdate, а затем снова запустить .save(), чтобы сделать пароль bcrypted

router.post('/edit', isAuthenticated, function (req, res, next) {
    User.findOneAndUpdate({_id: req.user._id}, {$set: req.body},{ new: true }, function (err, user){
        if (err) {
          return err;
        } else {
          if (req.body.password) {
            user.password = req.body.password;
            user.save();
          } else {
            // if body does not contain password
          }
        }
    })
})
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...