Express.js application error: Cannot read properties of undefined (reading 'transfer-encoding'

Express.js application error: Cannot read properties of undefined (reading 'transfer-encoding'

我正在使用 express 和 MongoDB 开发博客应用 API。

我正在尝试为每个博客 post 添加一张 post 图片。作为新手表达,我运行遇到了这个问题。

我收到了这个错误: 无法读取未定义的属性(读取 'transfer-encoding'

这里是post控制器代码:

const asyncHandler = require("express-async-handler");

const imageModel = require("../models/imageModel");

const User = require("../models/userModel");
const Post = require("../models/postModel");

//  storage
const Storage = multer.diskStorage({
  destination: "storage",
  filename: (res, req, file, cb) => {
    cb(null, Date.now() + file.originalname);
  },
});

const upload = multer({
  storage: Storage,
}).single("img");

// @desc    Create a new post
// @route   POST /api/posts/
// @access  Private
const createPost = asyncHandler(async (res, req) => {
  let img;

  upload(req, res, async function (err) {
    if (err) {
      res.status(400);
      throw new Error("Error uploading images.");
    }
    const newImage = await new imageModel({
      img: {
        data: req.file.filename,
        contentType: "image/png",
      },
    });
    newImage.save().then(console.log("Successfully uploaded"));
    img = newImage;
  });

  console.log(img);

  const { title, description, categories, nacCompatible, downloadURL } =
    req.body;

  if (!title || !description || !categories || !downloadURL) {
    res.status(400);
    throw new Error("Please add all the required fields.");
  }

  // Get user using the id in the JWT
  const user = await User.findById(req.user.id);

  if (!user) {
    res.status(401);
    throw new Error("User not found");
  }

  const post = await Post.create({
    title,
    description,
    img,
    categories,
    nacCompatible,
    downloadURL,
    user: req.user._id,
    status: "new",
  });

  res.status(201).json(post);
});

我在控制器的顶部也有const multer = require("multer");

创建 post 功能工作正常,直到我尝试添加此上传图片功能。

这一行:“createPost = asyncHandler(async (res, req)

你把 reqres 的顺序放错了