Node.js 如何在Express js中获取FormData?
我正在尝试将文件上载到我的express服务器。客户端代码如下所示:Node.js 如何在Express js中获取FormData?,node.js,express,Node.js,Express,我正在尝试将文件上载到我的express服务器。客户端代码如下所示: axios.post('localhost:3030/upload/audio/', formData) 在我的express服务器中: App.use(bodyParser.urlencoded({ extended: true })); App.use(bodyParser.json()); App.post('/upload/audio/', function uploadAudio(req, res) { le
axios.post('localhost:3030/upload/audio/', formData)
在我的express服务器中:
App.use(bodyParser.urlencoded({ extended: true }));
App.use(bodyParser.json());
App.post('/upload/audio/', function uploadAudio(req, res) {
let quality = ['320', '128'];
let file = req.body;
console.log(file)
res.send('Frick')
}
但是,即使发送了mp3文件:
记录时,req.body
为空(注意空对象):
如何在Express.js中获取formData(和文件)?正如@Tomalak所说的
正文解析器
不处理多部分正文
所以你需要使用一些第三方模块,我建议你使用真棒的模块
我试过做你的代码,希望能对你有所帮助
App.post('/upload/audio/', function uploadAudio(req, res) {
var storage = multer.diskStorage({
destination: tmpUploadsPath
});
var upload = multer({
storage: storage
}).any();
upload(req, res, function(err) {
if (err) {
console.log(err);
return res.end('Error');
} else {
console.log(req.body);
req.files.forEach(function(item) {
console.log(item);
// move your file to destination
});
res.end('File uploaded');
}
});
});
你不发送一个普通的请求正文和你的POST请求。如果发送
多部分/表单数据
,则有一个单独的主体解析器。比较,段落“这不处理多部分实体”ff。