我如何从猫鼬内部调用 req.flash() ?
How can I call req.flash() from inside the mongoose?
我在 mongoose 函数中调用 req.flash 时遇到问题。我试过点亮一切。在我的代码的一部分中,它可以工作,但在另一部分中却没有。
我的代码:
router.post('/chngpwd', function(req, res, next) {
var {currentpassword, newpassword, confirmnewpassword} = req.body;
var uid = req.session.passport.user;
if (newpassword == confirmnewpassword) {
User.findById(uid).then(dbres => {
req.flash('error_msg',"THIS MESSAGE DON'T WORK"); //DONT WORK
});
}else {
req.flash('error_msg',"New passwords don't match"); //WORKS
}
res.redirect('/adminpanel/1');
});
您正在将其重定向至 /adminpanel/1,而无需等待 findById(异步)函数的响应。
这应该有效:
router.post('/chngpwd', function(req, res, next) {
var {currentpassword, newpassword, confirmnewpassword} = req.body;
var uid = req.session.passport.user;
if (newpassword == confirmnewpassword) {
User.findById(uid).then(dbres => {
req.flash('error_msg',"THIS MESSAGE DON'T WORK");
res.redirect('/adminpanel/1');
});
}else {
req.flash('error_msg',"New passwords don't match");
res.redirect('/adminpanel/1');
}
});
我在 mongoose 函数中调用 req.flash 时遇到问题。我试过点亮一切。在我的代码的一部分中,它可以工作,但在另一部分中却没有。
我的代码:
router.post('/chngpwd', function(req, res, next) {
var {currentpassword, newpassword, confirmnewpassword} = req.body;
var uid = req.session.passport.user;
if (newpassword == confirmnewpassword) {
User.findById(uid).then(dbres => {
req.flash('error_msg',"THIS MESSAGE DON'T WORK"); //DONT WORK
});
}else {
req.flash('error_msg',"New passwords don't match"); //WORKS
}
res.redirect('/adminpanel/1');
});
您正在将其重定向至 /adminpanel/1,而无需等待 findById(异步)函数的响应。 这应该有效:
router.post('/chngpwd', function(req, res, next) {
var {currentpassword, newpassword, confirmnewpassword} = req.body;
var uid = req.session.passport.user;
if (newpassword == confirmnewpassword) {
User.findById(uid).then(dbres => {
req.flash('error_msg',"THIS MESSAGE DON'T WORK");
res.redirect('/adminpanel/1');
});
}else {
req.flash('error_msg',"New passwords don't match");
res.redirect('/adminpanel/1');
}
});