Сначала почтовый маршрут, изображение успешно сохранено:
router.post("/agent", upload.single('image'), function (req, res) {
cloudinary.uploader.upload(req.file.path, function (result) {
var name = req.body.name;
var image = result.secure_url;
var imageId = result.public_id;
var newReview = { name: name, imageId: imageId, image: image };
//create a new campground and save to DB
Agent.create(newReview, function (err, newlyCreated) {
if (err) {
console.log(err);
} else {
res.redirect('/agent/' + newlyCreated.id);
}
});
});
});
Затем я пытаюсь отредактировать изображение по положенному маршруту, но у меня 2 проблемы: 1. Сообщение об ошибке:Отсутствует обязательный параметр - public_id 2. Поле «имя» удаляется из БД.Вот маршрут put (edit):
router.put("/agent/:id", upload.single('image'), function (req, res) {
Agent.findById(req.params.id, req.body.agent, async function (err, updatedReview) {
if (err) {
res.redirect("/agent");
} else {
if (req.file) {
try {
await cloudinary.v2.uploader.destroy(updatedReview.imageId);
var result = await cloudinary.uploader.upload(req.file.path);
updatedReview.agent.imageId = result.public_id;
updatedReview.agent.image = result.secure_url;
} catch (err) {
req.flash("error", err.message);
return res.redirect("/agent");
}
}
updatedReview.name = req.body.name;
updatedReview.save();
req.flash("success");
res.redirect("/agent/" + req.params.id);
}
});
});
Предполагая, что названия меток и enctype в файлах html (ejs) верны. Может кто-нибудь указать мне, что не так?Спасибо!