我尝试发送图像,表单数据中的一些文本,然后尝试console.log(req.body)
总是return {}
,我已经读过很多关于此的主题
这是我的route / 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,但仍然无法正常工作。
答案 0 :(得分:0)
bodyParser
无法处理multipart/form-data
尝试Multer,From official docs:
Multer是用于处理multipart / form-data的node.js中间件, 主要用于上传文件。它写在busboy的顶部 以获得最高效率
Multer将主体对象和一个或多个文件对象添加到请求中 宾语。主体对象包含的文本字段的值。 表单中,文件或文件对象包含通过 表格。
查看有效示例:
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)
})