Saltar al contenido

Express body-parser req.body con formdata es un objeto vacío

Después de tanto luchar hemos dado con la solución de este asunto que muchos lectores de este espacio han tenido. Si deseas aportar algo más no dudes en dejar tu conocimiento.

Solución:

Para registrar cada campo en formData

let myForm = document.getElementById('myForm');
formData = new FormData(myForm);

for (let [key, value] of formData.entries())  
  console.log(key, value);

Violín – https://jsfiddle.net/thesumit67/j4znhxa5/1/

Para manejarlo via express use multer. Aquí hay un ejemplo: https://www.npmjs.com/package/multer

Asegúrate de agregar enctype="multipart/form-data" en el elemento de formulario. De lo contrario, Multer lo ignorará.

let multer = require('multer');
let upload = multer();

app.post('/save', upload.fields([]), (req, res) => 
  console.log( req.body );
  console.log( req.files );
  res.sendStatus(200);
);

body-parser está en desuso y ya no forma parte de Express.

Además, body-parser no proporciona la funcionalidad para analizar datos de publicación de datos de formulario.

De la descripción del repositorio body-parser:

Esto no maneja cuerpos de varias partes, debido a su naturaleza compleja y típicamente grande. Para cuerpos de varias partes, puede que le interesen los siguientes módulos:

  • ayudante de camarero y ayudante de camarero conectado
  • multipartidista y connect-multiparty
  • formidable
  • multrar

Aquí tienes las reseñas y puntuaciones

Si estás de acuerdo, tienes la habilidad dejar una reseña acerca de qué te ha gustado de esta reseña.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *