Я установил приложение Node.js, где я использую сессии и сохраняю их в MySQL.При использовании MemoryStorage
перенаправления работают нормально, но при использовании MySQL req.session
не обновляется, пока вы не перезагрузите или не перейдете на другую страницу, и я вынужден заменить каждый res.redirect('/...')
на res.render()
изна той же самой странице, чтобы отобразить что-либо в req.session
немедленно.
Я пробовал использовать оба параметра return res.redirect()
и нет, а также setTimeout
, ни один из них не работает.Я не могу понять это, и мне нужно, чтобы сессии были сохранены в БД
router.get('/student-sign-up', function (req, res, next) {
res.render('student/signUp', {
title: 'Sign up',
errors: req.session.errors
});
req.session.errors = null; //to flush them on reload
}).post('/student-sign-up', function (req, res, next) {
//Some form checks
let errors = req.validationErrors();
if (errors) {
req.session.errors = errors;
req.session.signUpSuccess = false;
return res.redirect('/student-sign-up');
}
//...
}
Выше следует перенаправить на ту же страницу и отображать ошибку (я использую Handlebars в качестве движка просмотра), если былиодин, но он просто перенаправляет, и если вы обновляете вручную или повторно отправляете неисправный, то он отображает его.То же самое для входа в систему (как успех, не входящий в дом платформы, так и сбой, не показывающий ошибки).Как будто все отстает на 1 шаг ...