Page 327 - Браун Э. - Изучаем JavaScript. Руководство по созданию современных веб-сайтов - 2017
P. 327
Синхронные функции файловой системы заманчиво удобны. Но если
вы пишете веб-сервер или сетевое приложение, помните, что скорость
его работы будет максимальной при асинхронном выполнении. В этих
случаях всегда следует использовать асинхронные версии функций вво-
да-вывода. Если вы пишете утилиту командной строки, использование
синхронных версий функций обычно не представляет особой проблемы.
Используя метод fs . readdir, вы можете вывести список файлов в каталоге. Соз
l
дайте файл s . j s.
const fs = require ( ' f s ' ) ;
fs . readdir (�dirname , function ( e rr, fil s ) {
e
if ( e rr) return console . e rror ( ' Heвoзмoжнo прочитать содержимое каталога ' ) ;
console . l og ( ' Coдepжимoe каталога $ { dirname ) : ' ) ;
console . l og ( f iles . m ap ( f => ' \ t ' + f ) . j oi ( ' \ n ' ) ) ;
n
) ) ;
В модуле f s содержится довольно много функций файловой системы; вы можете
удалять файлы (fs . un i nk), перемещать или переименовывать их (fs . rename), полу
l
чать информацию о файлах и каталогах (fs . stat) и многое другое. Более подробная
s
информация по этой теме приведена в документации по Node API (https : / /nodej .
)
org/a i / f s . html .
p
s
П е ременная proce s
Каждая выполняющаяся программа Node имеет доступ к переменной process, ко
торая позволяет получать информацию о выполнении текущего процесса и управлять
им. Например, если ваше приложение встречается с ошибкой, настолько серьезной, что
продолжение выполнения становится нецелесообразным или бессмысленным (неустра
нимая ошибка (fatal error)), вы можете немедленно остановить ее выполнение, вызвав
метод process e xit. Можно также передать числовой код завершения (exit code), ко
.
торый используется сценариями для определения, успешно ли завершилась программа.
Традиционно код завершения О означает "отсутствие ошибки': а отличный от нуля код
означает ту или иную ошибку. Рассмотрим сценарий, который обрабатывает файлы . txt
в подкаталоге data: если никаких файлов для обработки нет и делать нечего, то програм
ма завершает работу немедленно, но это не ошибка. С другой стороны, если подкаталог
da ta не будет существовать, то эта проблема будет считаться более серьезной, и про
грамма должна вернуть код ошибки. Вот как могла бы выглядеть эта программа.
const fs = require ( ' f s ' ) ;
e
a
fs . readdir ( ' dat ' , func i on ( e rr, fil s ) {
t
i f ( e rr) {
330 Глава 20. Платформа Node

