0

我正在尝试使用 Multer 将 3 张图像上传到数据库,我想将 image1 保存在 proImg 中,将 image2 保存在 proImg2 中,将 image3 保存在 proImg3 中。因此,每个产品将在网站上显示三张图片。那么如何使用 Node 和 Multer 将多个文件上传到 MongoDB?

产品.js

    const mongoose = require("mongoose")
    
    const productSchema = new mngoose.Schema({
    
        description: {
            type: String,
            required: true
        },
    
    
        proImg: {
            type: String,
            required: true
  
        },
    
        proImg1: {
            type: String,
            required: true
    
        },
    
        proImg2: {
            type: String,
            required: true
    
        },
    })
    
    let Product = mngoose.model('Product', productSchema, 'products');
    module.exports = Product;

管理员路由.js

      const multer = require("multer")
        var storage = multer.diskStorage({
            destination: function (req, file, cb) {
              cb(null, 'uploads/imgs')
            },
            filename: function (req, file, cb) {
              cb(null, file.originalname + '-' + Date.now() + '.png' )
            }
          })
           
          var upload = multer({ storage: storage,
            limits: {
                fieldSize: 1024 * 1024 * 3,
              },
            });
        
            var uploadMultiple = upload.fields([{ name: 'image', maxCount: 10 }, { name: 'image2', maxCount: 10 } , 
            { name: 'image3', maxCount: 10 }])
        router.post('/addProduct',upload.array('Images', 10), (req,res)=> {
            const errors = validationResult(req)
       
            
            let Pro= new Product({
                title: req.body.ProName,
                description: req.body.ProDes,
                available_stock: req.body.ProAvStk,
                price: req.body.ProPrice,
               manufacturer : req.body.ProManu,
               proImg: req.file.filename,
            })
        
            Pro.save((err)=>{
                if(!err){
                    console.log("ADDED ")
                  
                }
                else{
                    console.log("error")
       .
    .

addProduct.ejs

    <form action="/shopAdmin/addProduct" method="post" enctype="multipart/form-data">
    <div class="form-group">
            <label for="image">Upload File 1:</label>
            <input type="file" name="Images" id="image" required class="form-control">
          </div>
    
          <div class="form-group">
            <label for="image2">Upload File 2:</label>
            <input type="file" name="Images" id="image2" required class="form-control">
          </div>
          <div class="form-group">
              <label for="image3">Upload File 3:</label>
              <input type="file" name="Images" id="image3" required class="form-control">
            </div>
         
        <div class="mt-2 form-group" >
          <button type="submit" class="btn btn-primary">Create</button>
      </div>
   </form>
4

0 回答 0