Tobiq Tobiq - 1 month ago 8
Node.js Question

Node JS - No such file?

I'm using this piece of code to delete a file on demand

{
...
fs.access(path, (err)=> err || fs.unlink(path));
...
}


I got this error


Error: ENOENT: no such file or directory, unlink 'C:\ ... '
at Error (native)


Which makes no sense to me as I literally just checked for the files existence before attempting the unlink - I have a feeling something weird's going on behind the scenes like file locking.

How do I rectify this error?

Also, do I need to lock the file myself before I attempt to delete, to guarantee a robust and safe delete. I won't be there to manually delete the file and restart the server every time a user tries to delete their file.

amj amj
Answer

calling fs.access before write or delete is not recommended. Please check the below link https://nodejs.org/api/fs.html#fs_fs_access_path_mode_callback

Using fs.access() to check for the accessibility of a file before calling fs.open(), fs.readFile() or fs.writeFile() is not recommended. Doing so introduces a race condition, since other processes may change the file's state between the two calls. Instead, user code should open/read/write the file directly and handle the error raised if the file is not accessible.