Bonjour,
dans mon serveur nodejs, j'ai une fonction qui doit appeler une API externe.
L'objectif est de 1) récupérer tous les items, 2) pour chaque item, récupérer des données d'historique supplémentaires en faisant une nouvelle requête axios.
Voila ce que j'essaie de faire
Pour chaque item, à l'aide de son id, je souhaite récupérer ces informations d'historique(donc au sein d'une boucle je fais des requêtes getHistory) et rajouter ces datas à l'element existant. Puis mettre tous les éléments dans un tableau results ( Ainsi pour chaque item j'aurai les données de base + les données de son historique)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41 app.get('/api/items',async function(req, res) { var url=`${API}/resources/items; axios.get(url) .then(response => { var results = []; response.data.entities.forEach(function(el){ var itemId = util.getJobId(el); getHistory(itemId).then(res => function(res){ console.log(res); Array.prototype.push.apply(el, res); console.log(el) results.push(el); }); }); res.send(results); }) .catch(error => { console.log(error); }); }); async function getHistory(uid) { try { var url_history=`${API}/resources/${uid}/history/`; let res = await axios({ url: url_history, method: 'get', timeout: 8000, headers: { 'Content-Type': 'application/json', } }) return res.data.entities[0] } catch (err) { console.error(err); } }
Or au final, mon res.send(results) renvoie un tableau vide
Auriez vous une idée ??
Merci par avance
Partager