当我在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中,以供您使用。

我鼓励您查看cookieParsersource code,以更好地理解为什么它甚至首先存在。

09-16 20:18