请参阅通讯说明
如何在第一次请求发送给客户端之前获取设置为set-cookie标头的cookie的编码值?
使用Express 3.x,cookieParser,expression-session和mongo作为存储。
我试过了:
req.cookies
,但未在第一个请求中填充
因为客户还没有cookie。res.getHeader('set-cookie')
可能因为它而返回undefined
在express-session调用express route handler之后设置。在服务器端,即使request.cookie为空,我如何访问处理程序中的set-cookie标头或响应对象中的cookie值?
答案 0 :(得分:1)
差不多一年之后,但是您无法访问的原因是因为快速会话和其他中间件使用名为onHeaders的程序包"当响应是时,执行侦听器即将编写标题。"
所以你必须使用它来修改标题
var onHeaders = require('on-headers')
onHeaders(res, function(){
// knock yourself out
console.log(res.getHeader('set-cookie'));
});
以相反的顺序触发侦听器,以便您在代码中尽快获取此代码(侦听器)的值。