Привет, ребята, я создаю веб-сайт электронной коммерции, но у меня возникли проблемы с настройкой моей схемы mon go db для соответствия изображениям. моя схема
user: {
type: mongoose.Schema.Types.ObjectId,
ref: 'user'
},
title: {
type: String,
required: true
},
subtitle: {
type: String
},
productImages: [
{
img: {
data: Buffer,
contentType: String
}
}
],
details: {
modelNumber: {
type: String
},
releaseDate: {
type: Date
},
brandName: {
type: String,
required: true
},
countryOrigin: {
type: String
},
size: {
type: String
},
features: {
type: [String]
},
color: {
type: String,
required: true
}
}
Я хочу, чтобы изображения продукта были массивом изображений, чтобы я мог легко l oop через него и позже поместить его в карусель, чтобы отреагировать, но у меня проблемы с его сохранением с multer мой код multer
const storage = multer.diskStorage({
destination: function (req, file, cb) {
const dir = './uploads';
// create uploads
if (!fs.existsSync(dir)) {
fs.mkdirSync(dir);
}
cb(null, dir);
},
filename: function (req, file, cb) {
cb(null, Date.now() + '-' + file.originalname);
}
});
const fileFilter = (req, file, cb) => {
// only accept jpeg files or jpg files
if (file.mimetype === 'image/jpeg' || file.mimetype === 'image/jpg') {
cb(null, true);
} else {
return cb(
res
.status(400)
.json({ errors: [{ msg: '*only jpg and jpeg are allowed' }] })
);
}
};
// give a destination multer should save the files, (accept only files smaller than 10mb)
let upload = multer({
storage,
limits: {
fileSize: 1024 * 1024 * 10
},
fileFilter
});
router.post("/api/products", upload.array("productImages", 5), async(req, res)=>{
try{
const product = new Product({
title: req.body.title,
subtitle: req.body.subtitle,
productImages: req.files,
//rest of product data
})
}catch(err){
//error handling
}
})
с этим продукт сохраняет в базе данных, но я получаю только поле _id, может ли кто-нибудь показать мне лучший способ сохранить несколько изображений в базе данных в один раз. потому что, когда я регистрирую файлы req.files, я получаю
[
{
fieldname: 'productImages',
originalname: 'picture1.jpg',
encoding: '7bit',
mimetype: 'image/jpeg',
destination: './uploads',
filename: '1596264413208-picture1.jpg',
path: 'uploads\\1596264413208-picture1.jpg',
size: 61927
}
]
, так как я могу настроить свою базу данных в соответствии с этими данными.