Node.js axios.all的get请求中有多个url,如何将response.data与其相应的url对象匹配?

Node.js axios.all的get请求中有多个url,如何将response.data与其相应的url对象匹配?,node.js,api,express,axios,Node.js,Api,Express,Axios,我正在建立一个用于工作的工具。基本上,我上传一个csv来提取细节,这些细节将作为axios get请求中的参数 我在axios.all中使用了多个url,我的问题是无法将响应数据与该特定url的每个对象相匹配。下面是详细的代码片段。我希望我在下面已经说得够清楚了,但这与一次大量请求多个URL以及接收响应数据有关。问题在于将响应数据与调用它的正确url进行匹配 我们开始吧……首先,我正在映射从外部csv文件上载的车辆数据数组。”resultsArray'是我的数组,它包含年份、品牌、型号、修剪、价

我正在建立一个用于工作的工具。基本上,我上传一个csv来提取细节,这些细节将作为axios get请求中的参数

我在axios.all中使用了多个url,我的问题是无法将响应数据与该特定url的每个对象相匹配。下面是详细的代码片段。我希望我在下面已经说得够清楚了,但这与一次大量请求多个URL以及接收响应数据有关。问题在于将响应数据与调用它的正确url进行匹配

我们开始吧……首先,我正在映射从外部csv文件上载的车辆数据数组。”resultsArray'是我的数组,它包含年份、品牌、型号、修剪、价格、定位原始发布的url以及车辆的位置

    let vehicle_specs = resultsArray.map(function(d, index) {
    let values = {
      year: d['Title_name'].split(' ')[0], // Iterate with bracket notation
      make: d['Title_name'].split(' ')[1],
      model: d['Title_name'].split(' ')[2],
      trim: d['Title_name'].split(' ')[3],
      price: d['Title_Price'],
      cl_url: d['Title_Price_url'],
      cl_location: d['Title_Location'],
    }
    return values;
  });
      let Vehicle = function(year, make, model, trim, price, url, cl_url, cl_location) {
    this.year = year;
    this.make = make;
    this.model = model;
    this.trim = trim;
    this.price = price;
    this.url = url;
    this.cl_url = cl_url;
    this.cl_location = cl_location;
  }
我使用new关键字创建车辆的对象

    let vehicle_specs = resultsArray.map(function(d, index) {
    let values = {
      year: d['Title_name'].split(' ')[0], // Iterate with bracket notation
      make: d['Title_name'].split(' ')[1],
      model: d['Title_name'].split(' ')[2],
      trim: d['Title_name'].split(' ')[3],
      price: d['Title_Price'],
      cl_url: d['Title_Price_url'],
      cl_location: d['Title_Location'],
    }
    return values;
  });
      let Vehicle = function(year, make, model, trim, price, url, cl_url, cl_location) {
    this.year = year;
    this.make = make;
    this.model = model;
    this.trim = trim;
    this.price = price;
    this.url = url;
    this.cl_url = cl_url;
    this.cl_location = cl_location;
  }
然后,我使用车辆的新实例构建对象,并根据需要返回每个车辆

       let  vehicle_data = vehicle_specs.map(function(s) {
       let url = `http://api.marketcheck.com/v2/stats/car?api_key={}&ymm=${s.year}|${s.make}|${s.model}`;
       let new_vehicle = new Vehicle(`${s.year}`, `${s.make}`, `${s.model}`, `${s.trim}`, `${s.price}`, `${url}`, `${s.cl_url}`, `${s.cl_location}`);
       return new_vehicle;
  });
我在下面的代码片段中提取URL,并使用axios.all从每个URL请求数据

      let urls = vehicle_data.map(function(m) {
    return m.url;
  })

  let options = {
    'method': 'GET',
    'headers': {
      'Host': 'marketcheck-prod.apigee.net'
    }
  };

  axios.all(urls.map(url => {
    request(url, options, function (error, response, body) { 
      if(error) {
        console.log(error);
      } else {
        console.log(response);
      }
    });
  }))
我的问题:

我正在使用第三方API(Marcketcheck)-保存车辆上的数据

返回响应数据(请参见下面的示例。这是一个url的数据)

我不知道如何将每个响应数据与该特定url的vehicle对象相匹配

例如,如果我从vehicle对象请求3个URL。让我们给他们起个名字:

  • Url-1
  • Url-2
  • Url-3
  • 我将响应数据作为对象返回:

  • OBJ-1
  • OBJ-2
  • OBJ-3
  • 就我的知识水平而言,我没有办法,如何将每个对象分配回它的特定URL,然后将OBJ数据与它的特定车辆匹配

    我已经四天没有把头撞在墙上了,我想不出这是怎么回事

    欢迎提出任何建议,我非常感谢任何人在这篇文章中提供帮助。

    请查看此文章

        let requests = urls.map((url) => {
          return axios.get(url, {
            headers: {
              'Host': 'marketcheck-prod.apigee.net'
            }
          });
        });   
    
        Promise.all(requests).then((responces) => {
           console.log(responces);
        }).catch((err) => {
           console.log(err)
        });