mongodb - 如何使用 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 完成这项工作。
解决方案
推荐阅读
- tensorflow - Tensorflow Lite 转换失败:占位符操作中不支持的数据类型
- ios - ios应用在后台时的内存管理
- sql - 如何根据sql中的外键从表中获取数据
- django - 如何在Django中对不同的属性进行分组并对不同的属性求和?
- java - 如何使用Java在Spark中将数据库的列名更改为大写
- docker - Docker多阶段构建不在阶段之间复制
- r - 并行计算时函数参数中的变量不会传递给集群
- acumatica - Acumatica - 附件文件扩展名过滤器
- html - 使用 Bootstrap 4 在移动视图和桌面显示不同的图像
- salesforce - Fullcalendar 未在首次加载时呈现 - SFDC