Я все еще довольно новичок в пн 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))
Кто-нибудь знает, почему это проблема? Я часами пробовал разные методы, но это не дало результатов.