Estoy tratando de cargar un archivo con connect-multiparty en mi API pero no puedo hacer que funcione.
Aquí mi código (una muestra, porque mi API tiene muchas rutas de trabajo):
var express = require('express'); var bodyParser = require('body-parser'); var multipart = require('connect-multiparty'); var app = express(); var multipartMiddleware = multipart({ uploadDir: './imagesPath' }); // Define middleware app.use(bodyParser.urlencoded({ extended: true })); // Support encoded bodies app.use(bodyParser.json()); // Support json encoded bodies var router = express.Router(); // Get an instance of the express Router router.post('/testFileUpload', multipartMiddleware, function(req, res) { console.log(req.body, req.files); // Some other code }); Cuando intento cargar un archivo, tanto req.body como req.files están vacíos {}
Sé que Body-Parser ya no es compatible multipart/form-data así que estoy tratando de encontrar una manera de usarlo con otro paquete, pero hasta ahora no he tenido éxito.
Lo intenté con busboy , connect-busboy , multer , formidable , express-formidable , express-fileupload pero cada vez que req.files no está undefined , así que siento que he progresado un poco con connect-multiparty al tener req.files vacíos .
He visto algunos temas con problemas similares como este , este o este , pero desafortunadamente ninguno de esos me ayudó.
En el lado del cliente, estoy usando Advanced REST Client y Postman .
¿Alguna idea de lo que estoy haciendo mal?
Para quien tenga este problema, descubrí que eliminar los encabezados de tipo de contenido en Postman con el valor "aplicación/javascript" funcionó para mí. Simplemente no me había dado cuenta todo el tiempo, mientras probé diferentes paquetes igual que OP.
ponga enctype="multipart/form-data" en su formulario de etiqueta en html