Req.session在请求中未定义?

时间:2016-03-28 10:54:09

标签: node.js express

我在我的一个应用程序中使用请求模块。我试图在请求响应中重写请求会话maxAge值。但是,它不起作用。如何在请求响应/

中定义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
}

2 个答案:

答案 0 :(得分: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
})

答案 1 :(得分:0)

这里的request操作是异步行为。您可能需要将db操作放在request回调中。

或者修改testFunction以异步行动。例如,返回Promise等。