Я хочу отобразить несколько изображений на своем веб-сайте, используя Multer (nodejs).
Я создал следующую функцию:
exports.upload = multer(options).array('photo',3);
exports.images = async (req, res, next) => {
const imgArray = req.files;
const imgFormat = [];
for(let i = 0; i < imgArray.length; i++ ) {
imgFormat.push(imgArray[i].mimetype.split('/')[1] );
}
req.body.photo = [];
for(let i = 0; i < imgArray.length; i++ ) {
req.body.photo.push(`${uuid.v4()}.${imgFormat[i]}`);
}
for (let i = 0; i < imgArray.length; i++) {
const imgDetails = imgArray[i];
const photo = await jimp.read(imgDetails.buffer);
await photo.resize(1200, jimp.AUTO);
await photo.write(`./public/uploads/${(req.body.photo)}`)
}
next();
console.log(req.body.photo);
};
Я использую mongoose для доступа к своей базе данных. На MongoDB мне удается получить изображения без каких-либо проблем:
посмотреть, что я получу в MongoDB Но когда я console.log req.body.photo, я получаю следующий массив:
[ 'cdb88df7-149d-4506-9ec2-7550c32ace66.jpeg',
'efd9113b-9bd1-410e-a402-e969bf7aa8e3.png',
'6408dbdc-4093-44a9-91f1-e34e7c5918e1.jpeg' ]
В моем memoryStorage я сохраняю строку, состоящую из трех изображений, когда мне нужно их разделить:
Что я получу: cdb88df7-149d-4506-9ec2-7550c32ace66.jpeg,efd9113b-9bd1-410e-a402-e969bf7aa8e3.png,6408dbdc-4093-44a9-91f1-e34e7c5918e1.jpeg
Что я хочу:cdb88df7-149d-4506-9ec2-7550c32ace66.jpegefd9113b-9bd1-410e-A402-e969bf7aa8e3.png6408dbdc-4093-44a9-91f1-e34e7c5918e1.jpeg
Получение изображений, отделенных друг от друга, а не в массиве, заставляет мой код работать, я проверил его.
Подскажите, пожалуйста, как это сделать? У меня кончились идеи. Большое спасибо