Javascript CookieParser vs req.cookies expressjs
当我在中读到关于Javascript CookieParser vs req.cookies expressjs,javascript,node.js,cookies,express,Javascript,Node.js,Cookies,Express,当我在中读到关于req.cookies 使用cookieParser()中间件时,此对象默认为{}, 否则包含用户代理发送的cookies 当我读到 解析Cookie标头字段,并使用由Cookie名称键入的对象填充req.cookies 所以,req.cookies说如果我使用CookieParser,它将被设置为{},但是CookieParser说它将填充req.cookies 我的问题是,如果req.cookies本身提供cookies,为什么我们需要CookieParser?如果不使用Co
req.cookies
使用cookieParser()中间件时,此对象默认为{},
否则包含用户代理发送的cookies
当我读到
解析Cookie标头字段,并使用由Cookie名称键入的对象填充req.cookies
所以,req.cookies
说如果我使用CookieParser,它将被设置为{}
,但是CookieParser说它将填充req.cookies
我的问题是,如果
req.cookies
本身提供cookies,为什么我们需要CookieParser?如果不使用CookieParser
,cookies将作为URL编码的头(“code>Cookie”)
这意味着,默认情况下,cookie信息将在req.headers.cookie
中找到
顾名思义,cookieParser
解析Cookie
头的内容(使用恰当命名的-模块),并方便地将结果(由Cookie名称键入的对象)放入req.Cookie
中供您欣赏
我鼓励您查看
cookieParser
的功能,以便更好地理解它最初存在的原因。看起来这是一个文档问题。我为这个问题创建了一个解决方案
引用
我只是语法不好,我想说的是当你使用
cookieParser()将填充req.cookies对象。否则它
不存在。有很多交叉文档正在进行,因为
大多数人使用Express,就好像连接几乎不存在一样
第一份文件是错误的。它应该是“当使用cookieParser()中间件时,此对象包含用户代理发送的cookie,如果没有找到cookie,则为{}。无需检查它是否为null或未定义”。实际上,它默认为空对象,如果有任何cookie,它们将与同一对象中的键和值一起存储。但是文档中说,req.cookie将包含用户代理发送的cookie。如果没有使用
cookieParser
,对吗?express的文档中没有提到req.headers.cookie
:(@thefourtheye它的编写方式很不幸,我同意。它在语法上很专业,但在“否则”部分之前有一个逗号(,),这意味着我们仍然处于“When ThecookieParser()
”的上下文中,因此“否则”指的是当使用cookieParser
并实际拥有cookie数据时:)不幸的是,四个月后,express文档的措辞仍然混乱。