#node.js #mongodb #express #mongoose #multer
Вопрос:
Я часто использую NodeJS и Мангуста, но я застрял на проблеме. Я хочу отправить два файла из двух разных полей при создании профиля в моем приложении. Но я не могу найти решение для хранения имен моих изображений в двух разных полях мангуста, таких как «профиль» и «баннер».
const upload = multer({
storage: multerS3({
s3: s3,
bucket: 'mybucket',
contentType: multerS3.AUTO_CONTENT_TYPE,
metadata: function (req, file, cb) {
cb(null, { fieldName: file.fieldname });
},
key: function (req, file, cb) {
const ext = file.mimetype.split('/')[1];
cb(null, `${uuidv4()}.${ext}`);
},
}),
fileFilter: function (req, file, cb) {
if (file.mimetype.startsWith('image')) {
cb(null, true);
} else {
cb(new AppError('Merci de charger un fichier de type image', 400), false);
}
},
});
exports.addBanner = upload.single('banner');
exports.addProfil = upload.single('picture');
exports.createUnion = catchAsync(async (req, res, next) => {
if (req.file) req.body.image = req.file.key;
const doc = await Model.create(req.body);
res.status(201).json({
status: 'success',
data: {
data: doc,
},
});
});
Я застрял в if (req.файл) req.body.image = req.file.key;
мне нужно сохранить в поле «профиль» изображение профиля, а в поле «баннер» — мое изображение баннера, но я не нахожу ничего, чтобы завершить это.
Я думаю, что решение простое, но я признаю, что мне не совсем комфортно с Малтером.
Спасибо за вашу помощь