javascript - 如何使用node-fetch从API获取数据和响应状态?

标签 javascript node.js fetch node-fetch

根据 Node 获取文档 node-fetch

我们可以这样得到响应状态

fetch('https://github.com/')
    .then(res => {
        console.log(res.status);
    });

以及获取数据

fetch('https://api.github.com/users/github')
    .then(res => res.json())
    .then(jsonData => console.log(jsonData));

我有一个场景,我需要从响应中返回 JSON 数据和状态。我尝试这样使用

     fetch('https://api.github.com/users/github')
            .then(res => res.json())
            .then(jsonData => {
             console.log(jsonData);
             console.log(jsonData.status);
      });

但是

console.log(jsonData.status)

不会返回状态。如何获取状态和输出数据

最佳答案

最简单的解决方案是声明一个变量并为其分配 res.status 值:

let status; 
fetch('https://api.github.com/users/github')
  .then((res) => { 
    status = res.status; 
    return res.json() 
  })
  .then((jsonResponse) => {
    console.log(jsonResponse);
    console.log(status);
  })
  .catch((err) => {
    // handle error
    console.error(err);
  });

您也可以使用async/await尝试这种方式:

const retrieveResponseStatus = async (url) => {
  try {
    const response = await fetch(url);
    const { status } = response; 
    return status;
  } catch (err) {
   // handle error
    console.error(err);
  }
}

然后您可以将其与任何您想要的 URL 一起使用:

const status = waitretrieveStatus('https://api.github.com/users/github')

关于javascript - 如何使用node-fetch从API获取数据和响应状态?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51973958/

相关文章:

javascript - 从 JSON 获取下拉列表的动态值

javascript - 我可以将两个参数传递给 Worklight 适配器的 onSuccess 函数吗?

javascript - 替换 ul 列表子元素

javascript - Cheerio.js lodash 依赖

node.js - 无法使用 react-hls-player npm 包播放 m3u8 文件

json - AngularJS 未在 Http POST 中设置正确的内容类型

php mysql 4个表连接

javascript - 使用express在node.js中获取帖子后重定向

reactjs - React-router:更改查询字符串不会重新安装组件

javascript - 将 PHP 多数组转换为 javascript 的最佳方法