req.cookies 是 Express 路由器上的 [Object: null prototype] {}

req.cookies is [Object: null prototype] {} on express router

我目前正在尝试获取一些用于身份验证的 cookie。我正在使用后端 API 和反应前端来使网站正常运行。但是,一旦我尝试使用 express 在后端获取 cookie,我得到的唯一响应是:[Object: null prototype] {}

Cookie 已存储 correctly,但无法访问。知道为什么会这样吗?这是我的代码:

const { Router } = require("express");
const route = Router();

var cookieParser = require('cookie-parser');
route.use(cookieParser());

route.get("/", async (req, res) => {
   console.log(req.cookies)
})

知道为什么它一直这样做吗?谢谢你的帮助:D


编辑
我只是注意到当我使用 fetch 时,它返回未定义,如果我手动访问地址,它会给我正确的 cookie。参见 here
我正在使用这段代码来获取:

fetch(`${config.hosts.INTERNAL_API}/`, { 
    method: "GET",
    headers: {
        Accept: 'application/json',
        'Content-Type': 'application/json',
      },
}).then(res => res.json()).then(data => this.setState(data))

尝试将 credentials: 'include' 添加到您的提取调用中,如下所示:

fetch(`${config.hosts.INTERNAL_API}/`, { 
    method: "GET",
    credentials: "include",
    headers: {
        Accept: 'application/json',
        'Content-Type': 'application/json',
      },
}).then(res => res.json()).then(data => this.setState(data))

手动访问地址时它起作用的原因是浏览器发出的 HTTP 请求默认在 header 中发送 cookie。 Fetch 没有。