首页 > 解决方案 > 如何使用 multer 在 MongoDB 中上传多个图像?

问题描述

我关注了https://www.geeksforgeeks.org/upload-and-retrieve-image-on-mongodb-using-mongoose,但每次尝试都失败了。这是一段代码 -

这是 app.js ''' 中的中间件

var multer = require('multer');

var storage = multer.diskStorage({
    destination: (req, file, cb) => {
        cb(null, 'uploads')
    },
    filename: (req, file, cb) => {
        cb(null, file.fieldname + '-' + Date.now())
    }

});

var upload = multer({ storage: storage });

甚至 var upload = multer({ storage: storage }).array('image',2) 也无济于事

数据来了

app.post('/', upload.single('image'), (req, res, next) => {

   
    var obj = {
        name: req.body.name,
        img: {
            data: fs.readFileSync(path.join(__dirname + '/uploads/' + req.file.filename)),
            contentType: 'image/png'
        },
        desc: req.body.desc
    }
    console.log(obj)
    imgModel.create(obj, (err, item) => {
        if (err) {
            console.log(err);
        } else {
            // item.save();
            res.redirect('/home');
        }
    });
});

这是架构

var mongoose = require('mongoose');

var imageSchema = new mongoose.Schema({
    name: String,
    img: {
        data: Buffer,
        contentType: String
    },
    desc: String
});

请建议 cahnges 完成这项工作。

标签: mongodbimageuploadmulter

解决方案


推荐阅读