0

在下面给出的代码中: -

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!");
          }
      });
    }
  });
});  

假设 Mongoose 成功地从数据库中删除了数据。但是 fs(ie fs-extra) 无法删除图像。那么就会出现数据被删除但镜像依然存在的情况。那么有没有办法处理这种情况呢?

4

1 回答 1

0

使用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');                                
        }
});
    }
  });
});
于 2018-10-23T06:28:03.727 回答