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

250
Vistas
¿Cómo puedo imprimir una respuesta del servidor usando express y fetch?

Recibo una respuesta del objeto cuando trato de usar la respuesta de Express, este es el HTML y el cliente js que estoy usando.

 <html lang="en"> <head> <meta charset="UTF-8" /> <meta http-equiv="X-UA-Compatible" content="IE=edge" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" /> </head> <body> <form method="post"> <input id="names" name="names" type="text" /> </form> <button id="send">send</button> <p id="text"></p> <script> document.getElementById("send").addEventListener("click", () => { let datos = { method: "POST", headers: { "Content-Type": "application/json", }, body: JSON.stringify({ names: document.getElementById("names").value, }), }; fetch("/myaction", datos) .then(function (response) { document.getElementById("text").innerHTML = response; }) .catch(() => { document.getElementById("text").innerHTML = "Error"; }); }); </script> </body> </html>

estoy tratando de usar la respuesta de server.js en el elemento "texto", el servidor es

 var express = require('express'); var bodyParser = require('body-parser'); var app = express(); app.use(express.json()) //Note that in version 4 of express, express.bodyParser() was //deprecated in favor of a separate 'body-parser' module. app.use(bodyParser.urlencoded({ extended: true })); //app.use(express.bodyParser()); app.get('/', function(req, res) { res.sendFile(__dirname + "/index.html"); }); app.post('/myaction', function(req, res) { res.send(req.body.names); }); app.listen(8088, function() { console.log('Server running'); });

cuando la solicitud de búsqueda myaction express devuelve la consulta de nombre, pero no puedo usarla en la búsqueda porque imprime "[Respuesta del objeto]" en lugar del valor del formulario de nombre, ¿qué puedo hacer?

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

0

La "respuesta" que regresa de la búsqueda es un objeto que tiene más que solo los datos en la respuesta. Es un objeto de Response , lo que significa que contiene el código de estado (como 200), así como los datos. Por lo general, puede obtener los datos de la respuesta usando response.json() si es formato JSON, o response.text() si es texto. Estas funciones son asíncronas, por lo que también devuelven una Promesa. Entonces su código puede verse así:

 fetch("/myaction", datos) .then(function (response) { return response.text(); // a Promise that will resolve to the data }) .then(function (text) { document.getElementById("text").innerHTML = text; }) .catch(() => { document.getElementById("text").innerHTML = "Error"; });

Cada vez que vea una cadena que parezca [object Object] , significa que está viendo un objeto Javascript que no tiene una función toString() significativa, por lo que es lo mejor que puede hacer para mostrarle el valor. Si no está seguro de qué tipo de objeto es, una buena técnica de depuración es generarlo usando console.log(obj) para que pueda ver cómo se ve. Eso generalmente te da una pista sobre con qué estás trabajando realmente.

about 4 years ago · Juan Pablo Isaza Denunciar

0

La función de fetch global devuelve una promesa que se resuelve en un objeto deResponse . Este objeto contiene toda la información sobre la respuesta, como encabezados, estado, cuerpo, etc. Para obtener el cuerpo de la respuesta, primero deberá decodificar la respuesta.

En su caso, debe leer el cuerpo como una cadena, por lo que usaremos response.text() . Este es un método en el objeto Response . También devuelve una promesa que se resuelve en una cadena.

 fetch("/myaction", datos) .then(function (response) { return response.text(); }) .then(function (text) { document.getElementById("text").textContent = text; }) .catch(() => { document.getElementById("text").textContent = "Error"; });
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