如何使用 fs.unlink 删除本地文件?

新手上路,请多包涵

代码:

 fs.unlink("/public/images/uploads/"+req.file.filename, (err) => {
        if (err) {
            console.log("failed to delete local image:"+err);
        } else {
            console.log('successfully deleted local image');
        }
});


控制台/终端中的错误消息:

 failed to delete local image:Error: ENOENT: no such file or directory, unlink '/public/images/uploads/ed6d810405e42d0dfd03d7668e356db3'


情况

我一定是指定了错误的路径。我不明白为什么会出错,“ public ”文件夹与“ app.js ”文件处于同一级别。 “ upload.js ”位于名为“ routes ”的文件夹中,与“ app.js ”处于同一级别。

我在我的 app.js 中指定了一个路由“/public”到我的公共文件夹:

 //Static Folder
app.use("/public",express.static(path.join(__dirname, "/public")));


问题:

我做错了什么?

原文由 Coder1000 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 542
2 个回答

我打赌你想删除项目目录中的文件。试试这个(“/”之前的点):

 fs.unlink("./public/images/uploads/"+req.file.filename, (err) => {
        if (err) {
            console.log("failed to delete local image:"+err);
        } else {
            console.log('successfully deleted local image');
        }
});

原文由 mitch 发布,翻译遵循 CC BY-SA 3.0 许可协议

您不需要使用 c:\ 因为您可能不在 windows 环境中。此外,您可能最终会在云等中执行此操作。相反,通过使用 __dirname 使用相对目录。比如,如果使用反引号,执行 ${__dirname} 然后添加目录的其余部分,相对于您的代码所在的 javascript 文件。

原文由 Sarbojit Mukherjee 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
logo
Stack Overflow 翻译
子站问答
访问
宣传栏