Multer 没有在 Express 应用程序中上传图片

Multer not uploading the image in express app

我编写了这个简单的应用程序来测试 multer 将文件上传到我的服务器。我正在尝试使用邮递员对此进行测试,我选择了 form-data 选项,向我的图像添加了一个键并使用它旁边的按钮上传了图像。 API 调用正确,但图片未上传。

var express = require("express");
var app = express();
var multer = require('multer');

var upload = multer({
  dest: 'images/',
});

app.post('/uploadchq', upload.any(), function(req, res, next) {
  console.dir("file", req.file);
  console.dir("files", req.files);
  console.log("body", req.body);
  next();
  res.sendStatus(200);
});

app.listen(9999);
console.log("listening to port", 9999);

Multer 正在创建我在 dest 字段中指定的图像目录,但是 req.filereq.filesreq.body 所有字段都是空的。我尝试使用 upload.single 而不是 any 并将键名作为参数,但它仍然不起作用。有什么问题?

编辑:回复 Gaurav 的评论。这是邮递员的屏幕截图。我已将密钥名称从 chqImg 更改为 file

试试这个

var storage = multer.diskStorage({
    destination: function(req, file, cb) {
        var dest = 'images/';
        cb(null, dest);
    }
})

var upload = multer({
    storage: storage
});

app.post('/uploadchq', upload.fields([{
    name: 'file'
}]), function(req, res, next) {
    console.log("files", req.files.file);
    console.log("body", req.body);
});

我知道出了什么问题。我刚刚取消选中邮递员中的 header 字段,该字段将 Content-type 设置为 multipart/form-data 。但是,我无法理解为什么它不能使用它。

Axios 不能与 multer 一起使用,因此需要使用 XMLHTTPRequest

  let request = new XMLHttpRequest();
    request.open('POST', 'url');
    request.send(formData)