如何在 Node JS 中从客户端获取上传的文件?

How to get uploaded file from clientside in NodeJS?

我在我的 nodejs 文件中使用 npm multer 模块从客户端获取表单数据,其中包含我从我的计算机上传的图像。但是,当我尝试在服务器端打印文件时,它是未定义的,我猜测该文件实际上并未发送到服务器。当我在客户端打印出来时,它就在那里。

main.js(客户端)

var formData = new FormData();
formData.append("image", file);
var r = new XMLHttpRequest();
r.open("POST", "/post");
r.send(formData);

app.js(服务器端)

var multer = require('multer');

var upload = multer({dest:'./pics/'});

app.post('/post', function(req, res) {
    console.log(req.files);

}

您实际上必须使用 中间件。例如:

app.post('/post', upload.single('image'), function(req, res) {
  console.log(req.file);
});