如何在 Express js 中获取 FormData?

Seb*_*sen 3 node.js express

我正在尝试将文件上传到我的快速服务器。客户端代码如下所示:

axios.post('localhost:3030/upload/audio/', formData)
Run Code Online (Sandbox Code Playgroud)

在我的快递服务器中:

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')
}
Run Code Online (Sandbox Code Playgroud)

但是,即使发送了 mp3 文件:

http://i.imgur.com/bB7BofH.png

req.body登录时(注意空对象)是空的:

在此处输入图片说明

如何在 Express.js 中获取 formData(和文件)?

abd*_*rik 7

正如@Tomalak 所说body-parser,不处理多部分机构。

所以你需要使用一些第三方模块我建议使用 awesome module 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');
        }
    });
});
Run Code Online (Sandbox Code Playgroud)