无法在 express js 中获取 multipart/form-data

cant get multipart/form-data in express js

我正在尝试获取包含文件的表单数据,我使用 Multer 来处理该数据,但出于某种原因,我的 req.body 正在返回 {},但是当我使用正常没有多部分数据的表格,它给了我所有的数据,所以问题出在 Multer,这是我的代码

 const express = require("express");
const app = express();
const multer = require("multer");
app.listen(8000);
let upload = multer({ dest: "uploads/" });
upload.single("logo");
app.use(express.urlencoded({ extended: true }));

app.post("/", (req, res) => {
  console.log(req.file);
});

这是我项目中的工作代码

const path = require("path");
const multer = require('multer');

const fileStorage = multer.diskStorage({
    destination: (req, file, cb) => {
        cb(null, 'images');
    },
    filename: (req, file, cb) => {
        cb(null, new Date().toISOString()+ "-" + file.originalname);
    }
});

const fileFilter = (req, file, cb) => {
    if (
        file.mimetype === 'image/png' ||
        file.mimetype === 'image/jpg' ||
        file.mimetype === 'image/jpeg'
    ) {
        cb(null, true);
    } else {
        cb(null, false);
    }
};

app.use(express.urlencoded({ extended: false }));
app.use(express.json());
app.use(multer({ storage: fileStorage, fileFilter: fileFilter }).single('image'));
app.use(express.static(path.join(__dirname, 'public')));
app.use("/images", express.static(path.join(__dirname, 'images')));

app.post("/", (req, res) => {
  console.log(req.file);
});

app.listen(5000, () => console.log("Server Started!"));

const express = require("express");
const app = express();
const multer = require("multer");
app.listen(8000);
let upload = multer({ dest: "uploads/" });
app.use(express.urlencoded({ extended: true }));

app.post("/", upload.single("logo"), (req, res) => {
  console.log(req.file);
});

您需要指定 upload.single 作为中间件。