Хабр Курсы для всех
РЕКЛАМА
Практикум, Хекслет, SkyPro, авторские курсы — собрали всех и попросили скидки. Осталось выбрать!
У меня тоже, стандартная библиотека для работы с файлами вызывает каждый раз неприятные ощущения.
Не понял преимуществ в задании пути как свойств объекта. По мне так, вариант
path.join(__dirname, 'node_modules/fstb/package.json')выглядит лучше и понятнее, чем ваш вариант
FSPath(__dirname)["node_modules"]["fstb"]["package.json"]К тому же в первом случае IDE может подсказать путь и результат типизирован.
fstb.cwd.node_modules.unlink()Вызов функции для получения объекта пути, создает дополнительную когнитивную нагрузку и подвержен ошибкам. В примере выше многие, при чтении кода, будут спотыкаться о вызов метода unlink(), так как, ожидается, что происходит удаление.
asFile().read.lineByLine()
asFile().write.txt(string_to_write);Так же, странно видеть атрибуты read и write, лучше либо переименовать на более очевидное, либо сделать их методами. Почему бы сразу не сделать readLineByLine() и writeText()?
Не понял преимуществ в задании пути как свойств объекта
path.join(__dirname, 'node_modules/fstb/package.json')
const package_json_path = path.join(__dirname, 'node_modules/fstb/package.json');
fs.stat(package_json_path, (err, stat) => console.log(stat.size));
//либо (ну так вообще никто никогда не делает, да?):
fs.stat(path.join(__dirname, 'node_modules/fstb/package.json'), (err, stat) => console.log(stat.size))
FSPath(__dirname)["node_modules"]["fstb"]["package.json"]
FSPath(__dirname)["node_modules"]["fstb"]["package.json"]()
.asFile().stat().then((stat => console.log(stat.size)))
FSPath(__dirname)["node_modules/fstb/package.json"]
FSPath(__dirname, "node_modules/fstb/package.json")
Вызов функции для получения объекта пути, создает дополнительную когнитивную нагрузку и подвержен ошибкам. В примере выше многие, при чтении кода, будут спотыкаться о вызов метода unlink(), так как, ожидается, что происходит удаление.
Так же, странно видеть атрибуты read и write, лучше либо переименовать на более очевидное, либо сделать их методами. Почему бы сразу не сделать readLineByLine() и writeText()?
FSTB – работа с файлами в Node.js без боли