如何删除sailsjs中的文件?

时间:2016-05-22 21:47:53

标签: node.js sails.js fs enoent

我一直致力于一个需要定期更新关联和数据库的项目。我坚持删除文件。 我为此目的使用了fs.unlink fs,但它会引发一些错误。

代码段 -

fs.unlinkSync("/images/uploadedImages/70c9c2c4-74de-41c1-b096-c403b749a1a9.png");
sails.log.info("Logo deleted succesfully");

错误日志 -

fs.js:932
return binding.unlink(pathModule._makeLong(path));
Error: ENOENT: no such file or directory, unlink '/images/uploadedImages/70c9c2c4-74de-41c1-b096-c403b749a1a9.png'

文件70c9c2c4-74de-41c1-b096-c403b749a1a9.png也存在于路径/ images / uploadedImages /中,它位于sailsjs结构的assets文件夹中。

有没有办法实现这个目标?

3 个答案:

答案 0 :(得分:0)

您传递给fs.unlinkSync()的文件似乎不存在 确保你有这个文件

  

/images/uploadedImages/70c9c2c4-74de-41c1-b096-c403b749a1a9.png

然后它会起作用。

答案 1 :(得分:0)

找出问题所在。 Sailsjs框架并没有开始在它自己的资源文件夹中搜索路径。

将路径从 - /images/uploadedImages/70c9c2c4-74de-41c1-b096-c403b749a1a9.png更改为./assets/images/uploadedImages/70c9c2c4-74de-41c1-b096-c403b749a1a9.png可以解决问题。

答案 2 :(得分:0)

如果仍然有人找到答案,那么如果要对文件进行一些操作,下面的方法可能是个好方法。

使用fs.access,可以在对文件进行任何操作之前检查文件是否可用。人们也可以将fs.accessSync用于同步行为。

在下面的示例中,我使用了fs.unlink,但也可以使用fs.unlinkSync删除文件。

// import in file
const fs = require('fs')

// path of your file
let path = 'path to your file'

// fs.access will check if file is available or not
fs.access(path, fs.F_OK, (err) => {
    if (err) {
      console.error(err)
      return
    }
    //file exists, Go for delete operation
    fs.unlink(path , function (err) {
        if (err) {
            console.error(err);
            return
        }
        console.log('Image File has been Deleted');
    });
})