From 27c07b3f8ef88c7b4b46c090c744121b00d3309b Mon Sep 17 00:00:00 2001 From: James M Snell Date: Fri, 14 Aug 2015 10:59:07 -0700 Subject: [PATCH] doc: update description of fs.exists in fs.markdown per: https://github.com/joyent/node/pull/7944 originally submitted by @oconnore Minor update to the description in `fs.exists()` Reviewed By: Sakthipriyan Vairamani PR-URL: https://github.com/nodejs/node/pull/2378 --- doc/api/fs.markdown | 14 +++++--------- 1 file changed, 5 insertions(+), 9 deletions(-) diff --git a/doc/api/fs.markdown b/doc/api/fs.markdown index 99c3daf7a36b44..213ecd7f6219c1 100644 --- a/doc/api/fs.markdown +++ b/doc/api/fs.markdown @@ -680,15 +680,11 @@ Then call the `callback` argument with either true or false. Example: console.log(exists ? "it's there" : 'no passwd!'); }); -`fs.exists()` is an anachronism and exists only for historical reasons. -There should almost never be a reason to use it in your own code. - -In particular, checking if a file exists before opening it is an anti-pattern -that leaves you vulnerable to race conditions: another process may remove the -file between the calls to `fs.exists()` and `fs.open()`. Just open the file -and handle the error when it's not there. - - +`fs.exists()` should not be used to check if a file exists before calling +`fs.open()`. Doing so introduces a race condition since other processes may +change the file's state between the two calls. Instead, user code should +call `fs.open()` directly and handle the error raised if the file is +non-existent. ## fs.existsSync(path)