Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

141
Visualizações
Dos solicitudes dentro de un servicio en express

Actualmente estoy trabajando en un proyecto en el que intento construir un servicio en Express que llama a otros dos EP externos. Tengo un problema aquí, porque express me muestra un error que no puedo entender. Pero supongo que la forma en que estoy trabajando debería estar mal. Asi que

 app.get("/items/:id", (req, res) => { return request.get({ url: `https://myapi.com/${req.params.id}`, json: true }, (error, response) => { if(error) { return res.send("Error ocurred"); } const itemDesc = request.get({ // Here I'm trying to do the second call and use it later url: `https://myapi.com/${req.params.id}/description`, json: true }, (error, responseDesc) => { return responseDesc }); const itemDetails = response.body; const strPrice = itemDetails.price.toString().split('.'); const numberPrice = parseInt(strPrice[0]); const floatPrice = strPrice[1] ? parseInt(strPrice[1]) : 00; return res.send({ id: itemDetails.id, title: itemDetails.title, price: { currency: itemDetails.currency_id, amount: numberPrice, decimals: floatPrice, }, picture: itemDetails.pictures[0].url, condition: itemDetails.condition, free_shipping: itemDetails.shipping.free_shipping, sold_quantity: itemDetails.sold_quantity, description: itemDesc // Here I'm using the variable of the previous request }); }); });

Básicamente, el error que recibo es que no puedo hacer dos llamadas. Lo sé porque si elimino la solicitud anidada, funciona. El error que me sale es el siguiente: ingrese la descripción de la imagen aquí

Mi pregunta es: ¿Hay alguna forma de hacer dos solicitudes externas dentro del mismo método? Gracias por adelantado

about 4 years ago · Juan Pablo Isaza
1 Respostas
Responde à pergunta

0

es más limpio si lo hace con async await en su caso. modifica tu código así

 app.get("/items/:id", async(req, res) => { try { const promise1 = fetch(`https://myapi.com/${req.params.id}`).then(data => data.json()) const promise2 = fetch(`https://myapi.com/${req.params.id}/description`) const [itemDetails, itemDesc] = await Promise.all([promise1, promise2]) const strPrice = itemDetails.price.toString().split('.'); const numberPrice = parseInt(strPrice[0]); const floatPrice = strPrice[1] ? parseInt(strPrice[1]) : 00; res.send({ id: itemDetails.id, title: itemDetails.title, price: { currency: itemDetails.currency_id, amount: numberPrice, decimals: floatPrice, }, picture: itemDetails.pictures[0].url, condition: itemDetails.condition, free_shipping: itemDetails.shipping.free_shipping, sold_quantity: itemDetails.sold_quantity, description: itemDesc // Here I'm using the variable of the previous request }); } catch ( res.send("Error ocurred") ) });
about 4 years ago · Juan Pablo Isaza Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda