在节点中上传图像时遇到问题

时间:2020-10-01 13:38:44

标签: node.js multer

尝试使用multer上传图像并出现此错误

ENOENT:没有此类文件或目录,请打开“ C:\ Users \ Marwa \ mern-stack \ uploads \ images \ 74.jpeg” POST / api /用户/注册500 23.065毫秒-1711 RangeError [ERR_HTTP_INVALID_STATUS_CODE]:无效的状态码:ENOENT 在ServerResponse.writeHead(_http_server.js:248:11)

为什么会出现此错误?

这是文件上传中间件 并且图片应存储在uploads / images文件夹中

const multer = require("multer");
const MIME_TYPE_MAP = {
  "image/png": "png",
  "image/jpeg": "jpeg",
  "image/jpg": "jpg",
};

const fileUpload = multer({
  limits: { fileSize: 2 * 1024 * 1024 },
  storage: multer.diskStorage({
    destination: (req, file, cb) => {
      cb(null, "uploads/images");
    },
    filename: (req, file, cb) => {
      const ext = MIME_TYPE_MAP[file.mimetype];
      cb(null, Math.floor(Math.random() * 100) + "." + ext);
    },
  }),
  fileFilter: (req, file, cb) => {
    const isValid = !!MIME_TYPE_MAP[file.mimetype];
    let error = isValid ? null : new Error("Invalid mime type!");
    cb(error, isValid);
  },
});
module.exports = fileUpload;

然后我将这个中间件传递给我要添加(注册)图像的路由

router.post(
  "/signup",
  fileUpload.single("image"),
  [
    check("name").not().isEmpty(),
    check("email").isEmail(),
    check("password").isLength({ min: 6 }),
  ],
  createUser
);

0 个答案:

没有答案