У меня есть приложение CRUD, созданное с помощью node.js, express и mongoose. В этом приложении у меня есть форма, и 1 из входных данных представляет собой файл ввода для загрузки изображения. Я использую облачное хранилище, облачное хранилище и мультитер для обработки этих изображений. Если пользователь загружает изображение, я могу успешно добавить его в свою базу данных и впоследствии отобразить его позже. То, что я не смог выяснить, это как установить изображение по умолчанию, если ни один не выбран во входных данных файла. Вот мой бланк для отправки:
router.post('/add', parser.single("image"), (req, res) => {
const newContent = {
name: req.body.contentName,
userId: req.user.id,
username: req.user.username,
image: {
url: req.file.url,
id: req.file.public_id
},
}
new Content(newContent)
.save()
.then(() => {
req.flash('success_msg', 'Content added');
res.redirect('/content')
})
});
А вот мой облачный конфиг:
cloudinary.config({
cloud_name: ******,
api_key: ******,
api_secret: ******
});
const storage = cloudinaryStorage({
cloudinary: cloudinary,
folder: "demo",
allowedFormats: ["jpg", "png"],
transformation: [{ width: 348, height: 236.81, crop: "limit" }]
});
const parser = multer({ storage: storage });
Я просмотрел облачную документацию и нашел несколько экземпляров параметра default_image. чтобы добавить, но независимо от того, где я добавляю его в облачном конфиге, я получаю сообщение об ошибке "не могу прочитать свойство 'url' из неопределенного. Должно ли это быть обработано в моем посте, в моем конфиге или обоих? Для справки, моя модель контента имеетсвойство изображения устанавливается следующим образом:
image: {
url: {
type: String,
required: false
},
id: {
type: String,
required: false
}
},
Любая помощь приветствуется, спасибо!