如何从 API 调用后返回的 "Passthrough" 对象访问数据?

How to access data from "Passthrough" object returned after API call?

我正在向以下 url 发送带有节点提取的提取请求:http://fantasy.premierleague.com/api/bootstrap-static/ 以便取回一些 JSON 数据。在浏览器中访问 URL,或使用邮递员发送 get-request 都 returns 预期的 JSON 数据。

但是,当我从节点发送请求时,我返回了一个我不知道如何从中提取数据的对象(下图)。

我对节点不是很有经验,但我之前已经成功调用过 API。通常使用 response.json() 或 JSON.parse(response) 或 response.body 或 response.toString() 或它们的某些组合对我有用。我对缓冲区和流有一半的了解,但不确定,解决方案可能与这些有关,但我似乎无法弄清楚。

根据我的尝试,我会遇到一些不同的错误和对象。我试过使用 fetch 和来自节点的纯 http 请求。

这次通话:

Returns 这个:

如果我做 JSON.parse(response) 我会收到以下错误:

Response.body 看起来像这样:

获取returns响应流,如的答案中所述 您可以分块读取数据并将块添加到数组,然后对这些数据执行任何您需要执行的操作。一种更简单的方法是使用 npm 请求包。这是一个例子。

const request = require('request');
let options = {json: true};

const url = 'http://fantasy.premierleague.com/api/bootstrap-static/'
request(url, options, (error, res, body) => {
    if (error) {
        return  console.log(error)
    };

    if (!error && res.statusCode == 200) {
        console.log(body);
        // do something with JSON, using the 'body' variable
    };
});