【问题标题】:express response locals disappear快速响应当地人消失
【发布时间】:2015-12-17 14:15:43
【问题描述】:

我想将错误消息发送回客户端而不将它们添加到 url。这是我的尝试:

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')

之类的操作

【问题讨论】:

标签: node.js express


【解决方案1】:

您可以使用来自expressjs 的flash 包,但您需要有session 中间件才能使用它。此外,您可以使用来自RGBboy 的express-flash 包,但在这种情况下您需要同时拥有cookieParser 和session 中间件。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-05-02
    • 1970-01-01
    • 1970-01-01
    • 2014-07-13
    • 2018-08-19
    • 2013-02-20
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多