如何更新使用Multer上传的MERN中的图像?



这些是我所有的路由:

//Create a Post
router.post("/", upload.single("profile"), createPost);
//Read a Post
router.get("/", readPost);
//Delete a Post
router.delete("/:id", deletePost);
//Update a Post
router.put("/:id",upload.single("profile") updatePost);

这是我的多址设置代码:

// Multer Image Upload
const storage = multer.diskStorage({
destination: function (req, file, cb) {
cb(null, "uploads");
},
filename: function (req, file, cb) {
cb(null, Date.now() + "_" + file.originalname);
},
});
const upload = multer({ storage: storage });

这是我的UpdatePost函数更新的帖子,更新后的帖子desc("描述")得到更新,但配置文件(图像表单名称)值更新为空。:

//Update a Post
const updatePost = async (req, res) => {
const { desc } = req.body;
const profile = req.file ? req.file.filename : null;
try {
const updatedPost = await Post.findByIdAndUpdate(
{ _id: req.params.id },
{
desc: desc,
profile: profile,
}
);
res.status(200).json({ updatedPost, sucess: "Post Updated Sucessfully" });
} catch (error) {
res.status(404).json({ error: error.message });
}
};

首先从你想要更新图像的数据库中获取数据。

将该数据中已经存在的图像路径替换为您通过react发送的新图像路径,并使用.save()方法更新数据库中的数据

最新更新