bodyParser
не может обработать multipart/form-data
Попробуйте Multer, Из официальных документов :
Multer - это промежуточное программное обеспечение node.js для обработки multipart /form-data, которая в основном используется для загрузки файлов.Он написан поверх busboy для максимальной эффективности
Multer добавляет объект body и файл или объект files к объекту запроса.Объект body содержит значения текстовых полей формы, объект file или files содержит файлы, загруженные через форму.
См. Рабочий пример:
const Multer = require('multer');
const multer = Multer({
storage: Multer.memoryStorage(),
limits: {
fileSize: 5 * 1024 * 1024 // no larger than 5mb, you can change as needed.
}
});
app.post('/upload', multer.single('file'), (req, res) => {
// req.body will contain the text fields, if there were any
fs.createWriteStream('./uploads/' + req.file.originalname)
var fileWriteStream = fs.createWriteStream(req.file.originalname);
fileWriteStream.on('finish', () => {
console.log('file saved successfully');
res.send({ message: 'file saved successfully' })
})
fileWriteStream.end(req.file.buffer)
})