Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/39.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js 当存在多个页面时,如何使用axios获取所有响应数据?_Node.js_Get_Axios - Fatal编程技术网

Node.js 当存在多个页面时,如何使用axios获取所有响应数据?

Node.js 当存在多个页面时,如何使用axios获取所有响应数据?,node.js,get,axios,Node.js,Get,Axios,我有一个类似https://abc123/api/records这给了我: {"page":1,"per_page":10,"total":99,"total_pages":10,"data":[object1, object2, object3,...]} 那你会给我类似的东西吗 {"page":2,"per_page":10,"total":99,"total_pages":10,"data":[object1, object2, object3,...]} 我想从所有10页中访问“数据

我有一个类似
https://abc123/api/records
这给了我:

{"page":1,"per_page":10,"total":99,"total_pages":10,"data":[object1, object2, object3,...]}
那你会给我类似的东西吗

{"page":2,"per_page":10,"total":99,"total_pages":10,"data":[object1, object2, object3,...]}

我想从所有10页中访问“数据”中的所有对象。使用nodeJS和axios如何实现这一点?

您可以使用一个循环,例如下载每页数据。一旦检索到最后一页数据,我们将停止下载

我们使用params对象设置页面参数,从第1页开始

const axios = require("axios");

// Replace with the appropriate url.
const url = "https://abc123.com/api/records"

async function downloadRecords() {

    let records = [];
    let page = 0;
    let totalPages = 0;

    do {
        let { data: response }  = await axios.get(url, { params: { page: ++page } });
        totalPages = response.total_pages;
        console.log(`downloadRecords: page ${page} of ${totalPages} downloaded...`);
        records = records.concat(response.data);
        console.log("records.length:", records.length);
    } while (page < totalPages)

    console.log("downloadRecords: download complete.")
}

downloadRecords();
const axios=require(“axios”);
//替换为适当的url。
常量url=”https://abc123.com/api/records"
异步函数downloadRecords(){
让记录=[];
设page=0;
设totalPages=0;
做{
让{data:response}=wait axios.get(url,{params:{page:++page});
totalPages=响应。总页数;
log(`downloadRecords:page${page}共${totalPages}页下载…`);
records=records.concat(response.data);
log(“records.length:,records.length”);
}而(页数<总页数)
log(“下载记录:下载完成”)
}
下载记录();

循环,直到当前获得的
页面与
总页面相同为止?到目前为止,您尝试了什么,它到底有什么问题?
const axios = require("axios");

// Replace with the appropriate url.
const url = "https://abc123.com/api/records"

async function downloadRecords() {

    let records = [];
    let page = 0;
    let totalPages = 0;

    do {
        let { data: response }  = await axios.get(url, { params: { page: ++page } });
        totalPages = response.total_pages;
        console.log(`downloadRecords: page ${page} of ${totalPages} downloaded...`);
        records = records.concat(response.data);
        console.log("records.length:", records.length);
    } while (page < totalPages)

    console.log("downloadRecords: download complete.")
}

downloadRecords();