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

295
Vistas
¿Cómo puedo cargar un archivo y también incluir datos JSON con Fetch API?

Espero que estés teniendo un buen día. Así que estoy usando Fetch API para cargar archivos en el servidor, pero también quiero incluir una cadena como JSON para mi backend. Pero soy incapaz de hacerlo.

En este momento, así es como se ve mi función de carga de archivos. Esto funciona perfectamente si solo quiero cargar un archivo y no incluir una cadena como JSON:

 const uploadFile = ( e ) => { const uploadedFile = e.target.files[ 0 ]; const formData = new FormData(); formData.append( 'data', uploadedFile ); const rawResponse = await fetch( '/upload-file', { method: 'POST', body: formData }); }; uploadFile();

Obtener el archivo en mi backend de NodeJS con req.files.data ;

Pero si incluyo una cadena como JSON e intento cargar el archivo, no estoy definido en mi backend de NodeJS. Así es como se ve con una cadena como JSON:

 const uploadFile = ( e ) => { const uploadedFile = e.target.files[ 0 ]; const formData = new FormData(); const str = 'from client'; formData.append( 'data', uploadedFile ); const rawResponse = await fetch( '/upload-file', { method: 'POST', body: { file: formData, str } }); }; uploadFile();

Ahora, si quiero obtener el archivo en mi backend con:

req.files.file , obtengo undefined .

req.body , obtengo { 'object Object': '' } .

req.files.data , obtengo UnhandledPromiseRejectionWarning: TypeError: Cannot read property 'data' of undefined .

req.body.data , obtengo undefined .

¿Qué está fallando aquí?

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

0

lo agrega a FormData , no al cuerpo

 const uploadFile = ( e ) => { const uploadedFile = e.target.files[ 0 ]; const formData = new FormData(); const str = 'from client'; formData.append( 'data', uploadedFile ); formData.append( 'str', str ); const rawResponse = await fetch( '/upload-file', { method: 'POST', body: formData }); }; uploadFile();
about 4 years ago · Juan Pablo Isaza Denunciar

0

Simplemente agregue el valor al objeto FormData, igual que ya hizo con el archivo

 formData.append( 'str', '["some JSON here"]' );

Y luego sigue enviando solo ese objeto, body: formData

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