From d2cbad850e7e0c4d8137fd0bf2ed5c54e585e755 Mon Sep 17 00:00:00 2001 From: Dan Fabulich Date: Wed, 31 Aug 2016 16:10:04 -0700 Subject: [PATCH] fs: undeprecate existsSync --- doc/api/fs.md | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) diff --git a/doc/api/fs.md b/doc/api/fs.md index 2b9369ffa3b04c..f678b66b6718c4 100644 --- a/doc/api/fs.md +++ b/doc/api/fs.md @@ -693,6 +693,12 @@ fs.exists('/etc/passwd', (exists) => { }); ``` +**Note that the parameter to this callback is not consistent with other +Node.js callbacks.** Normally, the first parameter to a Node.js callback is +an `err` parameter, optionally followed by other parameters. The +`fs.exists()` callback has only one boolean parameter. This is one reason +`fs.access()` is recommended instead of `fs.exists()`. + Using `fs.exists()` to check for the existence 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 @@ -774,17 +780,18 @@ process. ## fs.existsSync(path) -> Stability: 0 - Deprecated: Use [`fs.statSync()`][] or [`fs.accessSync()`][] -> instead. - * `path` {String | Buffer} Synchronous version of [`fs.exists()`][]. Returns `true` if the file exists, `false` otherwise. +Note that `fs.exists()` is deprecated, but `fs.existsSync()` is not. +(The `callback` parameter to `fs.exists()` accepts parameters that are +inconsistent with other Node.js callbacks. `fs.existsSync()` does not use +a callback.) + ## fs.fchmod(fd, mode, callback)