From 17031909ff8d63b0b56913ee9785be2f70593811 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tobias=20Nie=C3=9Fen?= Date: Mon, 24 Jun 2024 11:32:31 +0200 Subject: [PATCH] doc: clarify that fs.exists() may return false for existing symlink Given that this API is problematic in any case, we should be precise about its (perhaps surprising) behavior. --- doc/api/fs.md | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/doc/api/fs.md b/doc/api/fs.md index 94633d5c4b3601..7ae55fdd64d214 100644 --- a/doc/api/fs.md +++ b/doc/api/fs.md @@ -2736,7 +2736,7 @@ changes: * `callback` {Function} * `exists` {boolean} -Test whether or not the given path exists by checking with the file system. +Test whether or not the element at the given `path` exists by checking with the file system. Then call the `callback` argument with either true or false: ```mjs @@ -2753,6 +2753,9 @@ 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()`. +If `path` is a symbolic link, it is followed. Thus, if `path` exists but points +to a non-existent element, the callback will receive the value `false`. + 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