2013-10-23 6 views
0

나는 async.waterfall을 사용하여 결과를 반환하는 일련의 방법을 사용합니다. Ajax를 사용하고 나중에 결과로 작업하기 때문에 결과를 request.session 변수에 저장합니다. 그러나 세션 변수의 값을 설정할 수는 있지만 나중에 가져올 수는 없습니다.비동기 폭포에서 세션에 결과를 저장할 수 없습니다.

다음은 폭포에서 가져온 코드입니다.

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

나는 그 다음 request.session.cases의 경우 필터 다른 URL에 JQuery와로드를 수행합니다. 하지만 request.session.cases은 정의되지 않았습니다.

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

이상한 부분

내가 결과 이외의 다른 request.session.cases을 설정할 수 있습니다 (I도 result[0]로 설정할 수 있습니다) 및 괜찮을 것입니다. 또한 Ajax 호출을 수행하기 전에 결과의 값을 인쇄했으며 객체 배열을 실제로 채 웁니다.

+0

쿠키 셸 (cookieSession)을 사용하고 있는데, 이유가 무엇이든간에 그렇게 할 수 없었습니다 (어쩌면 너무 컸습니다). 세션을 사용하는 것으로 바뀌었고 이제는 괜찮습니다. – n00b

답변

0

cookieSession에는 저장할 수있는 매우 작은 크기의 데이터가 있습니다. 저장할려고했던 데이터가 너무 커서 cookieSession에 적합하지 않았습니다. 따라서 나는 그 유형의 데이터에 대해 세션을 사용하고 사용자 로그인에 일반 쿠키를 사용하는 것으로 전환했습니다.

관련 문제