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

165
Vistas
Análisis de cuerpo JSON de Node Express

Soy un novato en Express, por lo que he investigado bastante sobre este problema, pero no puedo hacerlo bien. Así que necesito pasar una matriz como esta ["1","2","3","4","5"] como una carga útil de Frontend, y en Express necesito aceptarla y hacer cosas con ella . Hasta ahora, puedo enviarlo desde Frontend y recibirlo en Express, pero el contenido de lo que recibo no se ve bien. En el Express recibo:

 POST / 200 3.239 ms - 97 { '"1","2","3","4","5"': '' }

así que no puedo hacer nada con esto. Intenté enviar un objeto llamado params y recibir eso para hacer algo con eso, eso tampoco funcionó.

Los encabezados de frontend son así

 Request URL: http://localhost:5000/ Request Method: POST Status Code: 200 OK Remote Address: [::1]:5000 Referrer Policy: strict-origin-when-cross-origin Access-Control-Allow-Origin: * Connection: keep-alive Content-Length: 36 Content-Type: application/json; charset=utf-8 Date: Mon, 13 Dec 2021 23:06:58 GMT ETag: W/"24-sEnfXlyl7goDTpCx3bZVIGauJsc" Keep-Alive: timeout=5 X-Powered-By: Express Accept: application/json, text/plain, */* Accept-Encoding: gzip, deflate, br Accept-Language: en-US,en;q=0.9 Connection: keep-alive Content-Length: 21 Content-Type: application/x-www-form-urlencoded DNT: 1 Host: localhost:5000 Origin: http://localhost:3000 Referer: http://localhost:3000/ sec-ch-ua: " Not A;Brand";v="99", "Chromium";v="96", "Google Chrome";v="96" sec-ch-ua-mobile: ?0 sec-ch-ua-platform: "Windows" Sec-Fetch-Dest: empty Sec-Fetch-Mode: cors Sec-Fetch-Site: same-site User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/96.0.4664.93 Safari/537.36

La configuración rápida que se relaciona con esto es como

 var express = require("express"); ... var app = express(); ... app.use(express.json()); app.use(express.urlencoded({ extended: true })); app.post("/", (req, res) => { res.json({ requestBody: req.body }); });

Entonces, ¿cómo puedo enviar como parte del cuerpo desde la interfaz en ReactJS una matriz ["1","2","3","4","5"] y luego aceptarla como matriz en Express y hacer cosas con ella?

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

0

NO debe enviar un objeto llamado params . Desde su solicitud POST, debe enviar la matriz como una propiedad del cuerpo de la solicitud. Luego estará disponible en la propiedad req.body en la aplicación Express.

about 4 years ago · Juan Pablo Isaza Denunciar

0

Lo que muestra como la solicitud:

 POST / 200 3.239 ms - 97 { '"1","2","3","4","5"': '' }

Y, los encabezados que muestra como:

 Content-Type: application/x-www-form-urlencoded

No coinciden. Sus datos se envían como texto sin formato. No es application/json o application/x-www-form-urlencoded por lo que no tiene un analizador de cuerpo instalado, por lo que Express no sabe qué hacer con él. De hecho, Express ni siquiera lo lee, simplemente permanece en el flujo entrante.

No muestra el código del lado del cliente, pero el cliente necesita hacer que el content-type y la codificación del contenido del cuerpo que envía con el POST coincidan realmente. Luego, necesita un analizador de cuerpo para ese content-type en el lado Express de las cosas.

Dado que esto está destinado a ser una matriz de datos, sugeriría usar JSON y enviar datos codificados de aplicación/json. Luego, su middleware express.json() existente lo leerá y analizará por usted y podrá leer los datos en req.body .

Si desea ayuda para arreglar el lado del cliente, muéstrenos el código del lado del cliente que envía esto.

Por ejemplo, si estaba enviando esto desde el cliente con fetch() , aquí hay un ejemplo directamente desde el documento de MDN para fetch() :

 // Example POST method implementation: async function postData(url = '', data = {}) { // Default options are marked with * const response = await fetch(url, { method: 'POST', // *GET, POST, PUT, DELETE, etc. headers: {'Content-Type': 'application/json'}, body: JSON.stringify(data) // body data type must match "Content-Type" header }); return response.json(); // parses JSON response into native JavaScript objects } postData('https://example.com/answer', { answer: 42 }) .then(data => { console.log(data); // JSON data parsed by `data.json()` call });
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