当我在expressjs docs中阅读有关req.cookies
的信息时,
当我读到CookieParser middleware时,
因此,req.cookies
表示如果我使用CookieParser,它将被设置为{}
,但是CookieParser表示它将填充req.cookies
。
我的问题是,如果req.cookies
本身提供cookie,为什么我们需要CookieParser?
最佳答案
在不使用cookieParser
的情况下,cookies作为URL编码的 header (“Cookie
”)出现。
这意味着默认情况下,cookie信息是在req.headers.cookie
中找到的。
顾名思义,cookieParser
解析Cookie
header 的内容(使用恰当命名的cookie -module),并将结果(以cookie名称为键的对象)方便地放置在req.cookies
中,以供您使用。
我鼓励您查看cookieParser
的source code,以更好地理解为什么它甚至首先存在。