0

所以我的 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.myCookiealways 返回的记录输出undefined。但在 Body 选项卡中,我可以看到 cookie 存在。

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

为什么这返回未定义?

编辑:所以,给出了一些“为什么”的答案,我现在意识到我也应该问:

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

安装后我真的不需要它fancyMiddleware.one,但我确实需要它fancyMiddleware.two

编辑 2:我忘了提到我正在使用 Express 3 设置。大概是相关的。

4

2 回答 2

0

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

res.cookie()立即设置Set-Cookie标题,因此您必须使用res.get('Set-Cookie')来查看当前值。

于 2014-08-06T15:25:28.493 回答
0

您正在 response-object 上设置 cookie res,但您是从 request 中询问它req

于 2014-08-06T15:22:49.393 回答