Page 325 - Браун Э. - Изучаем JavaScript. Руководство по созданию современных веб-сайтов - 2017
P. 325
для чтения hello . txt. Каждый раз при запуске приложения Node, оно будет исполь
зовать текущий рабочий каталог, который может отличаться от того, где располо
жен сам файл, как показано ниже.
$ cd /hom / j d oe/fs
e
$ node write . j s # текущий рабочий каталог /home/jdoe/fs
# создается /home/jdoe/fs/hello . txt
$ cd . . # теперь текущий рабочий каталог /home/jdoe
$ node fs /write . j s # создается /home/jdoe/hello . t x t
d
В Node существует специальная переменная, _ i rname, которая всегда содержит
путь к каталогу, в котором располагается файл исходного кода. Например, мы можем
изменить свой пример так.
const fs = require ( ' fs ' ) ;
fs . writeFile (_dirname + ' / hello . txt ' ,
e
' П ривет из Nod ! ' , func i on ( e rr)
t
л
i f ( e rr) return console . e rror ( ' Oшибкa при записи в фай . ' ) ;
} ) ;
l
Т е перь приложение wri te . j s всегда будет создавать файл he l o . txt в катало
ге /hom / < j doe>/fs (где находится write . j s . Использование конкатенации строк
)
e
для объединения переменной _d r name и нашего имени файла - не очень хоро
i
шая идея. Это может вызвать проблемы на компьютере под управлением Windows,
поскольку разделитель имен каталогов там другой. Поэтому в Node в модуле path
предусмотрены независимые от платформы утилиты для работы с именами файлов
и путями. Таким образом, мы можем переписать этот модуль так, чтобы он без про
блем работал на любой платформе.
const fs = require ( ' f s ' ) ;
const path = require ( ' pat ' ) ;
h
(
j
fs . writeFile p ath . o in (_ dirname , ' h ello . tx ' ) ,
t
' П ривет из Node ! ' , function ( e rr )
l
л
i f ( e rr ) return conso e . error ( ' Oшибкa при записи в фай . ' ) ;
} ) ;
j
Метод path . o in объединяет элементы пути, используя тот разделитель катало
гов, который принят в текущей операционной системе, что является хорошей прак
тикой.
Что если мы хотим теперь прочитать содержимое этого файла? Для этого мы ис
пользуем метод fs . readFile. Создайте файл read. j s.
const fs = require ( ' f s ' ) ;
const path = require ( ' pat ' ) ;
h
328 Глава 20. Платформа Node

