Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

272
Vistas
¿Por qué no puedo enviar una cadena en envío expreso?

Tengo el siguiente código para obtener datos de una API externa:

 const axios = require('axios'); const express = require('express'); const app = express() app.get("/coins", (req, res) => { console.log("/coins test"); axios.get("https://www.cryptingup.com/api/markets") .then(resultat=>{ console.log(resultat.data.markets) res = resultat.data.markets myS=""; res.forEach(element=>{ console.log(element.exchange_id); myS=myS+element.exchange_id; }); res.send(myS); }) .catch(error => console.log(`error is ${error}`)); }) port = 3000 app.listen(port, ()=>{console.log(`The server has started and is listening on port number: ${port}`);});

cuando ejecuto el código me sale lo siguiente:

 error is TypeError: res.send is not a function

no se donde esta mi error

about 4 years ago · Juan Pablo Isaza
2 Respuestas
Responde la pregunta

0

Ha sobrescrito el valor de res que se pasó a la función con esta línea de código:

 res = resultat.data.markets

Entonces, después de hacer eso, la res original desaparece, por lo que ya no puede llamar a res.send() .

Defina su propia variable nombrada por separado:

 app.get("/coins", (req, res) => { console.log("/coins test"); axios.get("https://www.cryptingup.com/api/markets") .then(resultat => { console.log(resultat.data.markets); let markets = resultat.data.markets; let myS = ""; markets.forEach(element => { console.log(element.exchange_id); myS = myS + element.exchange_id; }); res.send(myS); }) .catch(error => console.log(`error is ${error}`)); })

Además, debe declarar todas las variables que use con let o const .


Para su información, podría simplificar un poco con:

 let myS = resultat.data.markets.map(element => element.exchange_id).join(""); res.send(myS);
about 4 years ago · Juan Pablo Isaza Denunciar

0

Su problema es que está agarrando el objeto "res" que se pasa a la función de devolución de llamada express, pero luego, por alguna razón, lo reasigna para igualar algunos resultados de su llamada axios, esencialmente eliminando todos los métodos Express en "res".

about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda