Ich ist senden unter Code unter Verwendung von Daten zu erhalten, aus einer SammlungIterate aus mongodb Sammlung und api Anrufe tätigen und neue Schlüssel hinzufügen und Daten
Marketing.find({
shopId: req.params.shopId,
locationId: req.params.locationId,
}).exec(function (err, campaigns) {
if (err) {
return next(err);
} else if (!campaigns) {
return next(new Error('Failed to load Campaigns '+ req.params.shopId));
}
ich einen API-Aufruf auf Kampagnen machen will Objekt i die Verwendung Code unten
campaigns.forEach(function(item) {
async.waterfall([
function (done) {
item.opens = "-";
item.requests = "-";
var currentDate = new Date();
var formatedDate = currentDate.toISOString().slice(0,10);
var request = sg.emptyRequest();
request.queryParams.aggregated_by = 'day';
request.queryParams.limit = '1';
request.queryParams.start_date = '2016-01-01';
request.queryParams.end_date = formatedDate;
request.queryParams.offset = '1';
request.queryParams.categories = item._id;
request.method = 'GET';
request.path = '/v3/categories/stats';
sg.API(request, function (response) {
response.body = JSON.parse(response.body);
done(err,response.body)
});
},
function (data,done) {
for(var i=0;i<data.length;i++){
unique_opens = parseInt(unique_opens)+parseInt(data[i].stats[0].metrics.unique_opens);
opens = parseInt(opens)+parseInt(data[i].stats[0].metrics.opens);
requests = parseInt(requests)+parseInt(data[i].stats[0].metrics.requests);
}
if(unique_opens>=1 && requests>=1){
item.clickrate = (unique_opens/opens)*100;
}
else{
item.clickrate = 0;
}
item.opens = opens;
item.requests = requests;
console.log(item.opens);
opens = 0;
unique_opens = 0;
requests = 0;
console.log(item);
},
], function (error) {
if (error) {
//handle readFile error or processFile error here
}
});
});
Und am Ende muss ich
res.json(campaigns);
Aber es die beiden neuen Schlüssel in jedem Index nicht hinzufügen [op ens & Anfrage]
Meinten Sie die 'Karte()' Methode anstelle des 'foreach()' zu benutzen? – chridam
hi @chridam .. nein, ich möchte nicht eine andere Liste machen .. möchte diese beiden Schlüssel in jedem Index der gleichen Kampagnen-Array anhängen – Aniket