2016-03-28 6 views
1

私は自分のアプリケーションの1つでリクエストモジュールを使用しています。私は要求の応答で要求セッションのmaxAge値を書き直そうとしています。しかし、それは動作していません。 req.sessionが要求応答の中で定義されるようにする方法/Req.sessionはリクエスト内で未定義ですか?

function testFunction (req, res) { 
    req.session.cookie.maxAge = 10000; // working 

    request(option, function(err, response, body, req) { 
     req.session.cookie.maxAge = body.maxAge; // session is undefined 
    }) 
} 

module.exports = { 
    testFunction: testFunction 
} 

答えて

0

req変数をシャドウイングしているからです。競合しないように名前を変更してください。

request(option, function(err, response, body, req_) { 
    req.session.cookie.maxAge = body.maxAge; // session is undefined 
}) 

それとも完全にそのパラメータを削除します:たとえば

request(option, function(err, response, body) { 
    req.session.cookie.maxAge = body.maxAge; // session is undefined 
}) 
+0

こんにちは、セッションは今では定義されていますが、残念ながら新しいセッション値はmongodbに設定されていません。 'req.session.cookie.maxAge'が要求の範囲外にある場合に動作します – stackdisplay

0

ここrequest操作は非同期動作です。 DB操作をrequestコールバックの中に置く必要があるかもしれません。

また、testFunctionも非同期で動作するように修正してください。たとえば、Promiseなどを返します。

関連する問題