首页 > 解决方案 > Multer [对象:空原型] {title:'Arthar',描述:'the'} undefined undefined

问题描述

上传图片时出现空原型错误。

Multer 保存图像,但是当我在 MongoDB 中保存图像时,猫鼬会给出空原型错误:

imgUrl:{缩略图:req.files.filename,画廊:req.files.filename,}

请帮助我,尽快。

错误代码: [对象:空原型] {title:'Arthar',描述:'the'} undefined undefined

JS代码:

    const express = require("express");
    const mongoose = require("mongoose");
    const bodyParser = require("body-parser");
    const path = require("path");
    const multer = require("multer");
    const {
      uuid
    } = require("uuidv4");

    const router = express.Router();
    mongoose.connect("mongodb://localhost/user", {
      useNewUrlParser: true,
      useUnifiedTopology: true,
    });

    const db = mongoose.connection;
    db.on("error", console.error.bind(console, "connection error:"));
    db.once("open", function () {
      console.log("we are connected");
    });

    //body parser
    router.use(
      bodyParser.urlencoded({
        extended: true,
      })
    );
    router.use(bodyParser.json());

    //mongoose schema
    const gallerySchema = new mongoose.Schema({
      imgUrl: {
        thumbnail: String,
        gallery: Array,
      },
      title: String,
      description: String,
      date: {
        type: Date,
        default: Date.now,
      },
    });
    const gallery = mongoose.model("gallery", gallerySchema);

    router.get("/", (req, res) => {
      res.render("gallery");
    });

    //save uploaded files using multer
    let storage = multer.diskStorage({
      destination: (req, file, cb) => {
        cb(null, "../public/gallery/");
      },
      filename: (req, file, cb) => {
        let d = new Date();
        const imgName =
          file.fieldname + "_" + uuid() + path.extname(file.originalname);
        cb(null, imgName);
      },
    });
    let upload = multer({
      storage: storage,
    });

    let cpUpload = upload.fields([{
        name: "thumbnail",
        maxCount: 1,
      },
      {
        name: "gallery",
        maxCount: 20,
      },
    ]);

    router.post("/", cpUpload, (req, res) => {
      let a = new gallery({
        imgUrl: {
          thumbnail: req.files.filename,
          gallery: req.files.filename,
        },
        title: req.body.title,
        description: req.body.description,
      });
      a.save((err, a) => {
        if (err) return console.error(err);
        else {
          res.render("gallery");
        }
      });
      console.log(req.body);
      console.log(req.files.filename);
      console.log(req.files.filename);
    });
    module.exports = router;


错误图像

标签: javascriptnode.jsmongodbmongoosemulter

解决方案


推荐阅读