Cookie未读取或设置正确

Cookie not reading or setting properly

本文关键字:设置 读取 Cookie      更新时间:2023-09-26

所以我在Express应用程序中有一个路由,其中有两个中间件:

app.foo('/thisRoute', fancyMiddleware.one, fancyMiddleware.two);

两个中间件的功能都井然有序。然而,在fancyMiddleware.one中,我有这个:

var one = function(req, res, next) {
 ...
 ...
 res.cookie('myCookie', data, {maxAge: 3600000});
 console.log(req.cookies.myCookie)
 return next();
}

为了测试一切,我使用PostMan来测试我所有的请求。

req.cookies.myCookie的日志输出总是返回undefined。但是在Body选项卡中,我可以看到cookie是存在的。

如果我在fancyMiddleware.two中注销相同的cookie,它也是undefined

为什么返回undefined?

编辑:所以,有了几个"为什么"的答案,我现在意识到我应该也问:

我如何读取我刚刚设置的cookie ?

我不真的需要它后,我设置在fancyMiddleware.one,但我确实需要它在fancyMiddleware.two

编辑2:我忘了说我正在使用Express 3设置。可能相关。

req.cookies只在cookie解析器中间件执行时填充一次。

res.cookie()立即设置Set-Cookie头,所以你必须使用res.get('Set-Cookie')来查看当前值。

您在响应对象res上设置cookie,但是您是从请求req请求它。