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
   323   324   325   326   327   328   329   330   331   332   333