有没有办法限制我从响应中获取的数据量?

cap*_*ain 5 node.js axios

您好,我有一个小挑战要做,我必须显示从 api 获取的一些数据。主页将显示前 20 个结果,单击按钮将从页面添加另外 20 个结果。

我得到的 api 调用返回一个包含大约 1500 个元素的数组,并且该 api 没有参数来限制数组中元素的数量,所以我的问题是我是否可以以某种方式限制它,axios或者我应该获取所有这些元素并显示它们?

这是API: https: //api.chucknorris.io/

Moh*_*aji 6

你的问题有两个答案

简短的回答是

在你这边,在 API 端实现分页之前你无能为力

第二个答案是

http module 你可以这样处理它

 http.request(opts, function(response) {
    var request = this;
    console.log("Content-length: ", response.headers['content-length']);
    var str = '';
    response.on('data', function (chunk) {
      str += chunk;
      if (str.length > 10000)
      {
        request.abort();
      }
    });
    response.on('end', function() {
      console.log('done', str.length);
      ...
    });
  }).end();
Run Code Online (Sandbox Code Playgroud)

这将在大约 10.000 字节时中止请求,因为数据以不同大小的块形式到达。