1

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

代码片段 -

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 文件夹中。

没有办法实现这一点吗?

4

3 回答 3

0

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

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

那么它将起作用。

于 2016-05-22T22:33:16.800 回答
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');
    });
})

于 2020-07-20T06:54:07.760 回答
0

想通了这个问题。Sailsjs 框架不会自行开始在 assets 文件夹中搜索路径。

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

于 2016-05-23T04:13:23.070 回答