Body-parser не работает с данными формы POST-MAN - PullRequest
1 голос
/ 01 июля 2019

Я пытаюсь отправить изображение, некоторый текст в данных формы, и я пытаюсь console.log(req.body) Это всегда return {} Я прочитал много тем об этом

вот мой маршрут / index.js

const express = require('express');
const router = express.Router();
const bodyParser = require('body-parser');

router.use(bodyParser.urlencoded({extended:true}));
router.use(bodyParser.json());
router.route('/').post(AdminController.list);

Я пытаюсь добавить urlencoded, но он все еще не работает.

1 Ответ

0 голосов
/ 01 июля 2019

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)
})
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...