【问题标题】:cant get multipart/form-data in express js无法在 express js 中获取 multipart/form-data
【发布时间】:2021-06-28 05:33:11
【问题描述】:

我试图获取包含文件的表单数据,我使用 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);
});

【问题讨论】:

    标签: node.js express multipartform-data multer


    【解决方案1】:
    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 作为中间件。

    【讨论】:

    • 哦,对了,我的错,我也应该把 app.listen 放在代码的底部,非常感谢
    【解决方案2】:

    这是我项目中的工作代码

    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!"));
    
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-07-08
      • 2021-08-03
      • 2018-06-25
      • 1970-01-01
      • 1970-01-01
      • 2011-04-22
      • 1970-01-01
      • 2013-12-11
      相关资源
      最近更新 更多