2016-03-28 100 views
1

我在我的一個應用程序中使用了請求模塊。我正在嘗試重寫請求響應中的請求會話maxAge值。但是,它不起作用。如何讓被請求響應中定義/要求內請求未被定義?

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變量req.session。重命名其中一個,以免它們發生衝突。例如:

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操作這裏是一個異步的行爲。您可能需要將您的數據庫操作放入request回調中。

或修改testFunction也是異步行爲。例如,返回一個Promise等