Para mi trabajo de fin de grado, estoy escribiendo un programa para visualizar los datos personales solicitados a través del RGPD Art.20. Dado que este tipo de datos normalmente está comprimido, necesito poder enviar archivos comprimidos a mi servidor node.js. Esto es lo que he hecho hasta ahora.
async function test (element){ let file = element.files[0]; await base64(file); async function base64(file){ let reader = new FileReader(); reader.readAsDataURL(file); reader.onload = await async function () { console.log(reader.result); fetch('/api', { method: 'POST', body: reader.result, }) .then(response => response.json()) .then(result => { console.log('Success:', result); }) .catch(error => { console.error('Error:', error); }); }; reader.onerror = function (error) { console.log('Error: ', error); }; }; }En este punto, solo estoy tratando de consola.log () mi solicitud.cuerpo, pero sin embargo, aquí está el código de mi servidor:
const { response } = require("express"); const express = require("express"); const { request } = require("http"); const JSZip = require("jszip"); const app = express(); app.listen(1234, () => console.log("Listening at 1234")); app.use(express.static("public")); app.use(express.json({limit: "10000mb"})) app.post("/api", async (request, response) => { console.log(request.body); response.json({status: "success33"}); });Cuando registro reqeust.body, está vacío "{}". ¿Alguien sabe la pregunta para esto? Leí muchos hilos, pero ninguno encajaba realmente con mi problema.
¡Gracias por adelantado!
Estaba enfrentando el mismo problema, y cuando agregué este middleware:
import * as fileUpload from 'express-fileupload'; app.use(fileUpload({createParentPath:true})) el problema desapareció y pude obtener cualquier archivo de req.files