【问题标题】:Can't store result in session from async waterfall无法将结果存储在来自异步瀑布的会话中
【发布时间】:2013-10-30 04:56:03
【问题描述】:

我有一系列使用 async.waterfall 运行的方法,然后返回结果。我将该结果存储到 request.session 变量中,因为我使用 Ajax 并稍后使用结果。但是,我发现我可以设置会话变量的值,但后来我无法检索它。

这是瀑布的代码。

async.waterfall([
   //Some functions
], function(err, result) {
    request.session.cases = result;
    response.render('template.jade', {
        items : result
    });

然后我对另一个 url 执行 jquery 加载,然后过滤request.session.cases 中的案例。 但是,我发现request.session.cases 是未定义的!

app.get('/case/:bugid', function(request, response) {
    console.log(request.session.cases); //undefined
}

奇怪的是,我可以将request.session.cases 设置为除结果之外的任何内容(我什至可以将其设置为result[0]),这样就可以了。在执行 Ajax 调用之前,我还打印了 result 的值,它确实填充了一个对象数组。

【问题讨论】:

  • 我使用的是 cookieSession,无论出于何种原因,它都无法做到这一点(也许它太大了)。我改为使用会话,现在很好

标签: javascript node.js session express async.js


【解决方案1】:

cookieSession 的数据量非常小,您可以将其存储到其中。我试图存储的数据对于 cookieSession 来说太大了。因此,我转而使用会话来处理该类型的数据,并使用普通 cookie 进行用户登录。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-03-08
    • 2015-07-18
    • 1970-01-01
    • 2018-11-13
    • 2020-09-06
    • 2014-10-31
    • 2015-06-19
    相关资源
    最近更新 更多