Querer hacer algo como a continuación. Supongo que es un problema con la llamada asíncrona ya que la respuesta que envío siempre es una matriz vacía, pero la API está devolviendo datos. Bastante nuevo en esto, ¡cualquier aporte es muy apreciado!
app.get('/:id/starships', (req, res) => { let person = findPersonById(people, req.params.id)[0]; let starshipUrls = person.starships; for(let i=0; i<starshipUrls.length; i++){ axios.get(starshipUrls[i]).then(response => { starships.push(response.data); }) .catch(err => console.log(err)); } res.json(starships); })axios.get devuelve una promesa . Use Promise.all para esperar varias promesas:
app.get('/:id/starships', (req, res) => { let person = findPersonById(people, req.params.id)[0]; Promise.all(person.starships.map(url => axios.get(url))) .then(responses => res.json(responses.map(r => r.data))) .catch(err => console.log(err)); })