CookieParser与req.cookies expressjs

当我阅读expressjs文档中的req.cookies时 ,

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

当我读到CookieParser中间件时 ,

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

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

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

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

引用实际响应

只是在我的部分坏语法,我的意思是说,当你使用cookieParser()req.cookies对象填充。 否则它不存在。 有很多交叉文档正在进行,因为大多数人使用Express,就好像Connect几乎不存在一样

如果不使用cookieParser ,Cookie将作为URL编码的标头(“ Cookie ”)。

这意味着,默认情况下,cookie信息是在req.headers.cookiefind的。

顾名思义, cookieParser parsing Cookie标头的内容(使用适当命名的cookie模块),并将结果(由cookie名称作为键名的对象)方便地放置在req.cookies以供您享受。

我鼓励你看看cookieParser的源代码 ,以便更好地理解为什么它甚至存在于第一位。