1
您好我是Mongoose的新手並嘗試使用pre命令將字符串中的給定密碼轉換爲哈希值,然後將其保存到數據庫中。我沒有得到任何語法錯誤,但我的密碼沒有被轉換成哈希IDS。Mongoose Pre命令不能正常工作
我的控制器代碼如下:
User.save(req.body,function(err,data){
if (err) {
res.json({
sucess:false,
exception:err
});
}
else{
res.json({
sucess:true,
User:data
});
}
});
User.pre('save',function(next){
bcrypt.genSalt(SALT_WORK_FACTOR, function(err, salt){
if(err){
return res.json({
success:false,
exception:err
});
}
bcrypt.hash(password, salt, function(err, hash) {
if(err){
return res.json({
success:false,
exception:err
});
}
password=hash;
});
});
next();
});
使用節點檢查,我發現,命令行沒有進入User.pre。所以有人可以讓我知道我犯了一個錯誤。
用戶必須是你的模式,是嗎?或者它是模型?替換字符串password = hash; to this.password = hash –
用戶是我的代碼中的一個模型。 – shubhamagiwal92
查看原文 - http://mongoosejs.com/docs/middleware.html –