Модуль FS при выполнении функции appendFileSync видит файл только через полный путь
Есть код
const fs = require("fs");
fs.appendFileSync("file.txt", "Some text here");
При выполнении кода ошибок не выдаёт, но файл по-прежнему остаётся пустым. Пробовал ввести полный путь, все заработало, но нужен краткий путь. Файл file.txt лежит в одной папке с index.js файлом. Объясните, пожалуйста, почему не записывается файл?
Ответы (1 шт):
Проблема может быть ещё вот в чём: важно не только, находятся ли файлы index.js file.txt в одной папке, важно ещё, откуда вы вызываете index.js. Если файлы находятся в папке C:\project\, а index.js вы вызываете из C:\, то текущей папкой будет считаться C:\, там будет искаться файл file.txt — а когда он не будет найден, будет создан заново.
Если хотите записывать в файл в одной со скриптом папке независимо от места вызова скрипта, можно попробовать так:
const fs = require("fs");
const path = `${__dirname}\\file.txt`
console.log(fs.readFileSync(path, "utf8"));
fs.appendFileSync(path, "Some text here");
console.log(fs.readFileSync(path, "utf8"));