无法将结果存储在异步瀑布的会话中

时间:2013-10-23 19:24:54

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

我有一系列使用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调用之前,我还打印出了结果的值,并确实填充了一个对象数组。

1 个答案:

答案 0 :(得分:0)

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