我试图将文件上传到我的快递服务器。客户端代码如下所示:
axios.post('localhost:3030/upload/audio/', formData)
在我的快递服务器中:
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(和文件)?
答案 0 :(得分:3)
正如@Tomalak所说,body-parser
不处理多部分机构。
所以你需要使用一些第三方模块我建议使用真棒模块multer
我试着做你的代码,希望它可以帮到你
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');
}
});
});