Node.js 如何在Express js中获取FormData?

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

我正在尝试将文件上载到我的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) {
  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。