Well, fs.exists() is now deprecated, and fs.existsSync() is synchronous, so you have to do something. If you only need to check if something exists fs.access() or fs.promises.access() is the way to go. The real reason to not use fs.exists() (or check if the file exists at all) is to avoid a race condition. It's much better to catch the error of a failed call to read or write to a file. Check out what the Node.JS documentation says about this under the fs.access() section
Do not use fs.access() to check for the accessibility of a file before calling fs.open(), fs.readFile() or fs.writeFile(). 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.
Later:
In general, check for the accessibility of a file only if the file will not be used directly, for example when its accessibility is a signal from another process.
For further actions, you may consider blocking this person and/or reporting abuse
We're a place where coders share, stay up-to-date and grow their careers.
Doesn't fs has "fs.existsSync()" or fs.exists() already to do that? Why you want to use stats method?
Well,
fs.exists()
is now deprecated, andfs.existsSync()
is synchronous, so you have to do something. If you only need to check if something existsfs.access()
orfs.promises.access()
is the way to go. The real reason to not usefs.exists()
(or check if the file exists at all) is to avoid a race condition. It's much better to catch the error of a failed call to read or write to a file. Check out what the Node.JS documentation says about this under the fs.access() sectionLater: