#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 чтобы знать точные значения.