【发布时间】:2011-10-28 02:05:53
【问题描述】:
在我的 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,我宁愿避免它。还有其他方法吗?
【问题讨论】:
标签: javascript redirect node.js express