Page 328 - Браун Э. - Изучаем JavaScript. Руководство по созданию современных веб-сайтов - 2017
P. 328
l
conso e . error ( " Oшибкa : не могу прочитать каталог dat . " ) ;
a
e
proc s s . exit ( l ) ;
e
const txtFiles = fil s . filter ( f => / \ . t xt$ / i . test ( f ) ) ;
e
i f ( t xtFil s . length === 0 ) {
console . log " Файлы . txt не найден . " ) ;
ы
(
proce s . e xit ( O ) ;
s
}
/ / обработка файлов . txt . . .
} ) ;
Объект process также позволяет обращаться к массиву, содержащему аргументы
командной строки, переданные программе. Запуская приложение Node, вы можете
передать ему необязательные аргументы командной строки. Например, мы могли
написать программу, которой передаются в виде аргументов командной строки не
сколько имен файлов, а она выводит количество строк текста в каждом файле. Мы
могли бы вызвать программу так.
$ node linecount . j s filel . txt file2 . txt fileЗ . t xt
Аргументы командной строки содержатся в массиве process . argv.2 Прежде чем
подсчитывать строки в наших файлах, давайте выведем значение свойства process .
argv, чтобы понять, что нам передается.
console . l og (process . argv) ;
Наряду с filel . txt, file2 . txt и fileЗ . txt вы увидите несколько дополнитель
ных элементов в начале массива.
e
' n od ' ,
e
' / hom / j d oe/linecount . j s ' ,
t
' filel . tx ' ,
t
' file2 . tx ' ,
' f ileЗ . txt ' ]
Первый элемент - это интерпретатор, или программа, которая интерпретирует
файл исходного кода (в данном случае - node). Второй элемент - это полный путь
к выполняемому сценарию, а остальная часть элементов является всеми переданны
ми программе аргументами. Поскольку нам не нужны эти дополнительные эле мен -
s
ты, воспользуемся методом Array . l i c e, чтобы избавиться от них прежде, чем на
чать подсчет строк в наших файлах.
const fs = require ( ' f s ' ) ;
v
e
const filenames = proc s s . arg . slice ( 2 ) ;
2 Имя argv - это кивок языку С. v - это первая буква слова vector (вектор), который подобен
массиву.
Переменная process 331

