我在我的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并不理想,我希望避免这种情况。有其他的方法吗?