Я создаю инструмент для работы. В основном я загружаю CSV для извлечения деталей, которые будут действовать как параметры в запросе ax ios.
Я использую несколько адресов в ax ios .all, и моя проблема в том, что я не могу сопоставить ответьте данные для каждого объекта с указанным c URL. Подробности ниже с фрагментами кода. Надеюсь, я объяснил это достаточно подробно ниже, но это связано с массовым запросом множества URL-адресов одновременно и получением данных ответа. Проблема заключается в сопоставлении этих данных ответа с их правильным URL-адресом, из которого они были вызваны.
Здесь мы go ... для начала я сопоставляю массив данных транспортного средства, которые я загружаю с внешнего 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;
}
Затем я строю объект с новым экземпляром Vehicle и возвращаю каждое транспортное средство, как мне нужно.
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-адреса в следующем фрагменте кода и использую ax ios .all для запроса данных у каждого.
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) - хранит данные о транспортных средствах.
Возвращаются данные ответа (см. Пример в качестве примера ниже. Это данные только для 1 URL)
{"price_stats":{"geometric_mean":3413,"min":899,"median":3595,"population_standard_deviation":1323,"variance":1750285,"ax":7995,"mean":3655,"trimmed_mean":3572,"standard_deviation":1323,"iqr":1800},"miles_stats":{"geometric_mean":97901,"min":2,"median":125000,"population_standard_deviation":51713,"variance":2147483647,"max":230456,"mean":125182,"trimmed_mean":125879,"standard_deviation":51713,"iqr":74734},"dom_stats":{"geometric_mean":100,"min":1,"median":100,"population_standard_deviation":399,"variance":159152,"max":2513,"mean":247,"trimmed_mean":162,"standard_deviation":399,"iqr":217},"count":101}
Я не могу понять, как сопоставить данные каждого ответа с объектом транспортного средства с указанным c url.
Например, если я запрашиваю 3 URL-адреса с объекта транспортного средства. Давайте назовем их:
- Url-1
- Url-2
- Url-3
Я получаю данные моего ответа как объекты:
- OBJ-1
- OBJ-2
- OBJ-3
У меня нет возможности, насколько я знаю с моим уровнем знаний, как назначить каждому объекту его заданный c URL и ТО, сопоставить эти данные OBJ с его указанным c транспортным средством.
Я не бился головой о стену в течение приблизительно 4 дней я не могу понять это.
Любые предложения приветствуются, и я действительно ценю любого, кто просматривает это сообщение, чтобы помочь.