Как иметь sh пароль при его обновлении в пн goose? - PullRequest
0 голосов
/ 01 мая 2020

Я все еще довольно новичок в пн goose. У меня есть следующая схема пользователя:

const userSchema = new mongoose.Schema({
    password: {
        type: String,
        required: [true, "Must have a Password"],
    },
});

И пароль хэшируется при сохранении, но не при обновлении:

userSchema.pre('save', function (next) {

    if (!this.isModified('password')) {
        return next();
    }

    bcrypt.genSalt(10, (err, salt) => {
        if (err) return next(err);

        bcrypt.hash(this.password, salt, (err, hash) => {
            if (err) return next(err);
            this.password = hash;
            next();
        });
    })

});

Схема обновляется с помощью этого преобразователя, и он будет обновляться , но пароль не будет хэширован:

editProfile: (root, { id, input }) => {
    Users.findOneAndUpdate({_id:id}, {$set: input}, {new: true}, (err, user) =>{
        try{
            user.save()
            return user.id
        } catch(err){
            console.error(err)
            throw new Error(err)
        }
    })
},

Я также безуспешно пытался использовать следующее

userSchema.pre('update', function (next))

Кто-нибудь знает, почему это проблема? Я часами пробовал разные методы, но это не дало результатов.

...