CookieParser与req.cookies expressjs

时间:2013-12-12 17:52:42

标签: javascript node.js cookies express

当我在expressjs docs中了解req.cookies时,

  

当使用cookieParser()中间件时,此对象默认为{},   否则包含用户代理发送的cookie。

当我读到CookieParser middleware时,

  

解析Cookie标头字段,并使用由Cookie名称键入的对象填充req.cookies。

因此,req.cookies表示如果我使用CookieParser,它将设置为{},但CookieParser表示它将填充req.cookies

我的问题是,如果req.cookies本身提供Cookie,我们为什么需要CookieParser?

2 个答案:

答案 0 :(得分:5)

不使用cookieParser,Cookie会以URL编码的标头(“Cookie”)形式出现。

这意味着,默认情况下,Cookie信息将在req.headers.cookie中找到。

顾名思义,cookieParser 解析 Cookie标题的内容(利用恰当命名的cookie - 模块)并方便地放置结果({1}}中{cookie名称所指定的对象)以供您享受。

我建议您查看req.cookies的{​​{3}},以便更好地理解为什么它首先存在。

答案 1 :(得分:5)

看起来这是一个文档问题。我为此问题创建了bug

引用Actual response

  

我的语法很糟糕,我的意思是当你使用时   cookieParser()填充了req.cookies对象。否则它   不存在。有很多跨文档正在进行,因为   大多数人使用Express就像Connect几乎不存在一样