我的更新功能是
User.update({_id: data._id}, {$set: {password: req.body.newpassword}})
.then(data => {
res.json(data)
})
.catch(err => {
res.status(400).json(err);
});
我的pre
中间件定义为
UserSchema.pre('update',function (next) {
console.log(this.password) //it shows undefined
});
我不知道如何使用这个,以便我可以在password
中间件中传递我的pre
字段,我还想要散列
感谢名单。
答案 0 :(得分:1)
您可以使用node.js crypto
模块。
var crypto = require('crypto');
var UserSchema = new mongoose.Schema({ password: 'string' });
UserSchema.pre('update',(next) => {
this.password = crypto.createHash('md5').update(this.password).digest('hex');
next();
});
var User = mongoose.model('User', UserSchema);
User.update({_id: data._id}, {$set: {password: req.body.newpassword}})
.then(data => {
res.json(data)
})
.catch(err => {
res.status(400).json(err);
});