Javascript 自动删除本地存储的图像
由于这一步,我遇到了这个问题。我有一个网页,我正在创建一个酱。。。该映像显示在我的backend/images目录以及mongodb中。目前一切正常。如果我修改了sauce,更确切地说是图像,该图像在mongodb中更新。另一方面,第一个图像(sauce_4.jpg160397591097)保留在我的文件夹中,它不会被删除,第二个图像(sauce_3.jpg1603975982081)来自更新后的图像 如果我使用“删除”按钮,图像将被完全删除,只有在更改/编辑图像的情况下,旧的图像仍然存储在本地,我也希望将其删除。。。想象一下处理数百张经过编辑的酱汁图像。 提前谢谢Javascript 自动删除本地存储的图像,javascript,express,mongoose,Javascript,Express,Mongoose,由于这一步,我遇到了这个问题。我有一个网页,我正在创建一个酱。。。该映像显示在我的backend/images目录以及mongodb中。目前一切正常。如果我修改了sauce,更确切地说是图像,该图像在mongodb中更新。另一方面,第一个图像(sauce_4.jpg160397591097)保留在我的文件夹中,它不会被删除,第二个图像(sauce_3.jpg1603975982081)来自更新后的图像 如果我使用“删除”按钮,图像将被完全删除,只有在更改/编辑图像的情况下,旧的图像仍然存储在本地
exports.modifySauce = (req, res, next) => {
const sauceObject = req.file ?
{
...JSON.parse(req.body.sauce),
imageUrl: `${req.protocol}://${req.get('host')}/images/${req.file.filename}`
} : { ...req.body };
const sauce = new Sauce({
_id: req.params.id,
userId: req.body.userId,
name: req.params.name,
manufacturer: req.params.manufacturer,
description: req.body.description,
mainPepper: req.body.mainPepper,
imageUrl: req.body.imageUrl,
likes: req.body.likes,
dislikes: req.body.dislikes,
usersLiked: req.body.usersLiked,
usersDisliked: req.body.usersDisliked
});
Sauce.updateOne({_id: req.params.id}, {...sauceObject, _id: req.params.id}) // This new information is then pushed to the DB
.then(() => {res.status(201).json({message: 'Sauce modifiee!'});
})
.catch((error) => {res.status(400).json({error: error});
}
);
};
exports.deleteSauce = (req, res, next) => {
Sauce.findOne({ _id: req.params.id })
.then(sauce => {
const filename = sauce.imageUrl.split('/images/')[1];
fs.unlink(`images/${filename}`, () => {
Sauce.deleteOne({ _id: req.params.id })
.then(() => res.status(200).json({ message: 'Sauce supprimée !'}))
.catch(error => res.status(400).json({ error }));
});
})
.catch(error => res.status(500).json({ error }));};