Как я могу вызвать req.flash() из мангуста?
У меня проблема с вызовом req.flash внутри функции mongoose. Я пытался зажечь все. В одной части моего кода это работает, а в другой - нет.
Мой код:
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');
});
1 ответ
Решение
Вы перенаправляете его в /adminpanel/1, не ожидая ответа от функции findById (async). Это должно работать:
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');
}
});