所以我的Express应用程序中有一条路由,其中包含两个中间件:
app.foo('/thisRoute', fancyMiddleware.one, fancyMiddleware.two);
两个middlwares的功能都很好。但是,在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
。
为什么返回未定义?
编辑:所以,有几个答案"为什么"被给予,我现在意识到我应该也问:如何阅读我刚设置的Cookie?
我在<{1}}中设置后,
编辑2:我忘了提及我正在使用Express 3设置。可能相关。
答案 0 :(得分:0)
您正在响应对象res
上设置Cookie,但您是从请求req
询问的。
答案 1 :(得分:0)
执行cookie解析器中间件时,req.cookies
仅填充一次。
res.cookie()
会立即设置Set-Cookie
标头,因此您必须使用res.get('Set-Cookie')
查看当前值。