12

CODE:

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'); } }); 

ERROR MESSAGE IN CONSOLE/TERMINAL:

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

SITUATION

I must have specified the wrong path. I don't understand why it would be wrong, the "public" folder is at the same level as the "app.js" file. The "upload.js" is in a folder called "routes" which is at the same level as "app.js".

And I have specified a route "/public" to my public folder in my app.js:

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

QUESTION:

What have I done wrong ?

2
  • This file really exists? In the error description it haven't extension. That's not exactly a problem, but a little uncommon Commented Dec 31, 2016 at 20:47
  • @RômuloM.Farias Yes, it's an image saved in binary. Commented Dec 31, 2016 at 20:48

3 Answers 3

25

I bet you want to delete file inside project directory. Try with this (dot before "/"):

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'); } }); 
Sign up to request clarification or add additional context in comments.

Comments

1

You missed a part of the path. What you're showing is not enough, but it can be fixed in the following way:

For example, the path I got of a file is the following:

 'C:\001-Training\MEANCourse\http:\localhost:3000\images\1-1571080310351.jpeg' 

But actually the path is

 'C:\001-Training\MEANCourse\http:\localhost:3000\backend\images\1-1571080310351.jpeg' 

Here, the "MEANCourse" is my project name, and "backend" is the top-level folder name as "src", but when the path was produced automatically, the top-level folder was ignored.

So I added "backend" to the path, and it started to work.

You have to find out what part is missing in your case.

Comments

1

You do not need to use c:\ for you may not be in the windows environment. Also, you may be finally executing this in cloud etc. Instead, use a relative directory by using __dirname. Like, if using backtick, do ${__dirname} then add the rest of the directory, relative to the javascript file your code is in.

Comments

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.