如何使用 fs.unlink 删除本地文件?
How to delete local file with 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');
}
});
CONSOLE/TERMINAL 中的错误消息:
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”到我的 public 文件夹
//Static Folder
app.use("/public",express.static(path.join(__dirname, "/public")));
问题:
我做错了什么?
我打赌你想删除项目目录中的文件。试试这个(“/”之前的点):
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');
}
});
您错过了部分路径。您显示的内容还不够,但可以通过以下方式解决:
比如我得到的一个文件的路径是这样的:
'C:[=10=]1-Training\MEANCourse\http:\localhost:3000\images-1571080310351.jpeg'
但实际上路径是
'C:[=11=]1-Training\MEANCourse\http:\localhost:3000\backend\images-1571080310351.jpeg'
这里的"MEANCourse"是我的项目名,"backend"是顶层文件夹名"src",但是路径是自动生成的, 顶级文件夹被忽略。
所以我在路径中添加了"backend",它开始工作了。
您必须找出您的案例中缺少的部分。
您不需要使用 c:\
因为您可能不在 windows 环境中。此外,您可能最终会在云等环境中执行此操作。相反,请使用 __dirname
来使用相对目录。例如,如果使用反引号,请执行 ${__dirname}
然后添加目录的其余部分,相对于您的代码所在的 javascript 文件。
代码:
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');
}
});
CONSOLE/TERMINAL 中的错误消息:
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”到我的 public 文件夹//Static Folder
app.use("/public",express.static(path.join(__dirname, "/public")));
问题:
我做错了什么?
我打赌你想删除项目目录中的文件。试试这个(“/”之前的点):
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');
}
});
您错过了部分路径。您显示的内容还不够,但可以通过以下方式解决:
比如我得到的一个文件的路径是这样的:
'C:[=10=]1-Training\MEANCourse\http:\localhost:3000\images-1571080310351.jpeg'
但实际上路径是
'C:[=11=]1-Training\MEANCourse\http:\localhost:3000\backend\images-1571080310351.jpeg'
这里的"MEANCourse"是我的项目名,"backend"是顶层文件夹名"src",但是路径是自动生成的, 顶级文件夹被忽略。
所以我在路径中添加了"backend",它开始工作了。
您必须找出您的案例中缺少的部分。
您不需要使用 c:\
因为您可能不在 windows 环境中。此外,您可能最终会在云等环境中执行此操作。相反,请使用 __dirname
来使用相对目录。例如,如果使用反引号,请执行 ${__dirname}
然后添加目录的其余部分,相对于您的代码所在的 javascript 文件。