【问题标题】:How to fetch and access data from own api using res.send() [duplicate]如何使用 res.send() 从自己的 api 获取和访问数据 [重复]
【发布时间】:2021-11-23 11:07:30
【问题描述】:

我目前有自己的 api,我正在尝试从中发送和检索数据。 在 api 中,我尝试使用 res.send({data: 1}) 之类的方式将对象发送到前端。

我可以使用邮递员轻松访问这些数据,但是当尝试使用 - 好 - fetch 获取数据时,我无法访问它。我尝试获取它的方式如下:

    const response = await fetch("http://localhost:2000/user/login", {
    method: "post",
    headers: { "Content-Type": "application/json" },
    body: JSON.stringify(user),
  });

而登录的response 看起来像这样:

body: (...)
bodyUsed: false
headers: Headers
[[Prototype]]: Headers
ok: true
redirected: false
status: 200
type: "cors"
url: "http://localhost:2000/user/login"
[[Prototype]]: Response

{data: 1} 对象无处可寻,我不知道如何访问它。

这是从 api 检索和发送数据的错误方法,还是我只是忽略了某些东西? 那么像这样传输数据的最佳方式是什么?

提前致谢!

Ps:{data: 1} 只是一个示例,我目前使用它的真正方法是从快速会话 cookie 中获取数据。

【问题讨论】:

标签: javascript reactjs api rest express


【解决方案1】:

fetch() 返回一个 promise,其解析值可以让您获得响应的状态和标题。您正在等待该承诺,因此您确实获得了该信息。但要阅读响应的实际正文,您需要再次调用 response.json() 以返回另一个承诺:

const response = await fetch("http://localhost:2000/user/login", {
  method: "post",
  headers: { "Content-Type": "application/json" },
  body: JSON.stringify(user),
});

// read the body of the response
const data = await response.json();
console.log(data);

【讨论】:

    猜你喜欢
    • 2021-02-06
    • 1970-01-01
    • 2020-05-05
    • 2021-03-21
    • 1970-01-01
    • 2020-06-29
    • 1970-01-01
    • 2020-02-06
    • 1970-01-01
    相关资源
    最近更新 更多