Mongo/Mongoose/Multer/FS 以删除图像



在下面给出的代码中:-

var Image = mongoose.model("Image", imageSchema); //Assuming all the configuration of packages are done
app.delete("/element/:id", function(req, res) {
Image.findByIdAndRemove(req.params.id, function(err) {
if(err) {
//Error Handling
} else {
fs.remove(path, function(err) { //where path is the path of the image and fs is fs-extra
if(err) {
//Error Handling
} else {
res.send("Image deleted!");
}
});
}
});
});

假设猫鼬成功从数据库中删除了数据。但是 fs(即 fs-extra(无法删除图像。 然后会出现一种情况,即数据被删除但图像仍然存在。那么有没有办法处理这种情况呢?

使用fs.unlink而不是fs.remove

var Image = mongoose.model("Image", imageSchema); //Assuming all the configuration of packages are done
app.delete("/element/:id", function(req, res) {
Image.findByIdAndRemove(req.params.id, function(err) {
if(err) {
//Error Handling
} else {
fs.unlink(path+req.file.filename, (err) => {
if (err) {
console.log("failed to delete local image:"+err);
} else {
console.log('successfully deleted local image');                                
}
});
}
});
});

最新更新