我想将错误消息发送回客户端而不将其添加到网址。这是我的尝试:
exports.register = function(req, res) {
if (req.body.password != req.body.password_repeat) {
res.locals.err = 'Passwords must match.';
res.locals.action = 'register';
res.redirect('/');
return;
}
...
exports.index = function(req, res) {
req.url = '/';
res.render('index', {
action: res.locals.action,
error: res.locals.error,
redirect: res.locals.redirect
});
};
因此重定向工作正常,exports.index执行。问题是res.locals已经消失了。这是因为一旦我重定向它被认为是一个新的req / res循环?我可以通过重定向传递此信息,而无需执行res.redirect('/?error=error')
答案 0 :(得分:0)
您可以使用flash中的expressjs包,但您需要unwrap_or
个中间件才能使用它。此外,您可以使用express-flash中的RGBboy包,但在这种情况下您需要同时拥有session
和cookieParser
个中间件。