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

88
Vistas
el objeto de respuesta express http no devuelve datos

Estoy intentando escribir un servidor usando express js, pero cuando envío una solicitud de obtención a mi punto final desde otro servidor, la respuesta se recibe y es exitosa, pero no contiene los datos que envió el servidor después de res.send(data) .

aqui esta el servidor

 const express = require("express"); const app = express(); const cors = require("cors"); const corsOptions = { origin: ["http://localhost:6000"], optionsSuccessStatus: 200, credentials: true, }; app.use(cors(corsOptions)); app.use(express.json()); app.get("/test", (req, res) => { res.send("hello") }) app.listen(4000)

y aquí está el servidor que está enviando la solicitud

 import fetch from "node-fetch"; const url = "http://localhost:4000/test" import express from "express"; const app = express() fetch(url) .then(response => { console.log(response) }) .catch(err => { console.log(err) }) app.listen(6000)

la respuesta que se devuelve no es la cadena enviada desde el servidor, sino el objeto que contiene la respuesta http (que es demasiado grande para poner aquí), pero sin los datos originales, aunque especifica un estado de respuesta de 200 que sugiere que el se enviaron datos.

curiosamente, el servidor devuelve los datos originales cuando la solicitud se envía desde el símbolo del sistema usando curl, pero los encabezados CORS contienen explícitamente el puerto localhost de la solicitud. ¿Me estoy perdiendo una información importante sobre CORS, o este error es el resultado de otra cosa?

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

0

Parece que está cerrando sesión en la respuesta de búsqueda, que se verá como un objeto enorme con toneladas de datos incomprensibles.

Debe llamar a un método en esa respuesta para ver los datos reales de respuesta del servidor. Hay response.json() y response.text() para nombrar 2 de ellos. ver documentos

Probar:

 fetch(url) .then(response => response.text()) .then(response => { console.log(response) }) .catch(err => { console.log(err) })
about 4 years ago · Juan Pablo Isaza Denunciar

0

fetch() por sí mismo devuelve una promesa que se resuelve solo en el objeto de respuesta que incluye los encabezados y el flujo abierto, pero NO el cuerpo de la respuesta. Todavía no ha leído el cuerpo de respuesta real. Para hacerlo, debe llamar a uno de los métodos que lee el cuerpo, como .text() o .json() .

 import fetch from "node-fetch"; const url = "http://localhost:4000/test" fetch(url).then(response => { return response.text(); // <==== tell it to read the body here }).then(result => { console.log(result); }).catch(err => { console.log(err) });

O, a veces parece un poco más claro si usa async/await :

 import fetch from "node-fetch"; const url = "http://localhost:4000/test" async function run() { let response = await fetch(url); // sends request and gets headers let text = await response.text(); // reads the actual body return text; } run().then(text => { console.log(text); }).catch(err => { console.log(err); });
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