Не понимаю, как этот процесс.argv используется в этом Node.js функция

#node.js

#node.js

Вопрос:

Я работаю над упражнением 5 модуля «learnyounode».

Это функция и решение:

 var fs = require('fs'),
    path = require('path');

fs.readdir(process.argv[2], function (err, list) {
    if(err){throw err}
  list.forEach(function (file) {
    if (path.extname(file) === '.'   process.argv[3])
      console.log(file)
  });
});
  

Теперь я сам не нашел решения, потому что мне было трудно обдумать этот запрос:

Создайте программу, которая печатает список файлов в заданном каталоге, отфильтрованный по расширению файлов. Вам будет предоставлено имя каталога в качестве первого аргумента вашей программы (например, ‘/ path/to/ dir/’) и расширение файла для фильтрации в качестве второго аргумента.

Например, если вы получаете ‘txt’ в качестве второго аргумента, вам нужно будет отфильтровать список только для файлов, которые заканчиваются на .txt.
Обратите внимание, что второй аргумент не будет иметь префикса ‘.’.

Имейте в виду, что первые аргументы вашей программы не являются первыми значениями процесса.массив argv, поскольку первые два значения зарезервированы для информации о системе по узлам.

Означает ли это, что если бы к программе действительно обращались, как к терминалу / командной строке, то что process.argv было бы получено, было бы следующим?

 0: /usr/local/bin/node
1: /Users/me/work/node/filter-list.js
2: '/path/to/dir/'
3: txt
  

Комментарии:

1. вы можете просто запустить код и посмотреть

2. @Sikorski Спасибо!

3. ДА. В вашей проблеме process . argv будет получать вышеуказанные значения, как вы упомянули. Первым элементом будет process.execPath . Вторым элементом будет путь к исполняемому файлу JavaScript. Остальные элементы будут любыми дополнительными аргументами командной строки. Запустите пример, упомянутый здесь nodejs.org/api/process.html#process_process_argv чтобы знать точные значения.