我有这个代码应该可行。我在其他地方有几乎完全相同的代码。但是,user.save不会触发,User.update也不会触发。我意识到这里有很多无关的代码,我已经提出了很多想法,试图弄清楚为什么保存和更新都没有工作(是的,我知道我只需要一个,我和#39已经单独尝试了两种,只是这样说明了。)
User.findOneByEmail(req.param('email'), function foundUser (err, user) {
if (err) return next(err);
E.l(user);
if (!user) {
var noAccountError = [{name: 'noAccount', message: 'The email ' + req.param('email') + ' was not found.'}]
req.session.flash = {
err: noAccountError
}
res.redirect('/user/forgot');
return;
}
var userObj = {
lostpasswordtoken: Helper.Guid()
}
user["lostpasswordtoken"] = userObj.lostpasswordtoken;
user.save(function(err){
if (err) {
E.l(err);
} else {
E.l("save workd");
}
});
User.update(user.id, userObj, function userTokenUpdated (err) {
E.l(user['id']);
E.l(JSON.stringify(userObj));
if (err) {
return res.redirect('/user/forgot');
}
E.l("here6");
});
MailService.SendMail({ to: user['email'], subject: 'Password Reset',
body: 'Click on http://' + req.headers.host + '/user/validateforgot?e=' + user['email'] + '&t=' + userObj['lostpasswordtoken']});
res.view();
E.l("here8");
});
E.l("here9");
答案 0 :(得分:1)
我不知道您使用的符号,我通常使用它:
User.update(user.id, userObj).exec(function(err, user)
{
if(err)//error
....
});