Я хочу сохранить информацию , сгенерированную пост-маршрутом в сеансе , передать ее в get-route (куда я перенаправляю после сообщение завершено), запустите res.render () с этой информацией из сеанса и , затем очистите ее, чтобы переменная сеанса была пуста для следующего маршрута (блок кода объясняет проблему а если бы это было слишком расплывчато). Помните, что приведенный ниже код является упрощенной версией, моя программа содержит рабочий сеанс, в котором я могу хранить переменные и получать к ним доступ.
const clearSessionMessage = async (req, res, next) => {
await res.on('finish', () => {
let sess = req.session;
sess.message = '';
});
next();
};
app.use(clearSessionMessage);
app.get('/route', (req, res) => {
let sess = req.session;
res.render('template', { message: sess.message });
});
app.post('/post/route' (req, res) => {
let sess = req.session;
sess.message = 'The message I want to pass';
res.redirect('/route');
});
Возможные решения, которые я пробовал:
- Измените параметр 'fini sh' в
res.on()
на: finish
, end
или close
- Принудительно сохранить сеанс с помощью
req.session.save(callback)