我在我的一个应用程序中使用请求模块。我试图在请求响应中重写请求会话maxAge值。但是,它不起作用。如何在请求响应/
中定义req.sessionfunction 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 :(得分: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等。