How to delete local file with fs.unlink?

Coder1000 picture Coder1000 · Dec 31, 2016 · Viewed 25.8k times · Source

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 ?

Answer

mitch picture mitch · Dec 31, 2016

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