Невозможно отредактировать (/ поместить) изображение с помощью облачных и мультиплатных файлов на NodeJS - PullRequest
0 голосов
/ 23 мая 2019

Сначала почтовый маршрут, изображение успешно сохранено:

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) верны. Может кто-нибудь указать мне, что не так?Спасибо!

...