В моем приложении Node.js у меня есть функция (перенаправленная Express), которая представляет форму пользователю:
app.get('/register', function (req, res) {
res.render('form');
});
У меня есть другая функция, перенаправленная на тот же URL, но которая обрабатываетPOST-запросы, в которые поступают данные, отправленные по предыдущей форме.Если форма не проверяется, она перенаправляет пользователя обратно в форму;в противном случае он делает то, что должно быть сделано:
app.post('/register', function (req, res) {
if (validate(req.registerForm)) return res.redirect('back');
persistStuff(req.registerForm, function (err, data) {
// Do error verification etc.
res.redirect('back')
});
});
Я хочу отправить сообщение об ошибке в строке:
if (validate(req.registerForm)) return res.redirect('back');
Чтобы написать что-то вроде
if (validate(req.registerForm)) return res.render('form', {msg:'invalid'});
недопустимо, потому что я хочу следовать шаблону POST-REDIRECT-GET.Я мог бы сделать что-то вроде
if (validate(req.registerForm)) return res.redirect('/register?msg=invalid');
, но он бы жестко закодировал URL в моем коде, и я предпочел бы избежать этого.Есть ли другой способ сделать это?