Node.js — это известная бесплатная среда выполнения JavaScript с открытым исходным кодом, которая позволяет пользователям выполнять код JavaScript из файла или непосредственно из командной строки. Для запуска кода JavaScript из файла требуется внешний файл «. js ” file, в то время как командная строка выполняет код JavaScript непосредственно построчно.
Иногда пользователю необходимо настроить информацию при запуске приложения Node.js из командной строки через « узел<имя файла> ». В такой ситуации пользователю необходимо передать эту информацию непосредственно в качестве входных данных с командой выполнения, а не записывать ее в файл «. js ' файл.
В этой статье будут обсуждаться все возможные методы приема ввода из командной строки в Node.js.
Как принять ввод из командной строки в Node.js?
Node.js предлагает следующие модули для приема ввода из командной строки:
- Использование модуля «readline»
- Использование модуля «readline-sync»
- Использование модуля «подсказка»
- Использование модуля «запросчик»
Начнем с « линия чтения » модуль.
Предварительные условия : Прежде чем переходить к практической реализации какого-либо метода, сначала создайте файл «. js ” файл любого имени и записать в него весь исходный код. Здесь мы создали « индекс .js».
Способ 1. Примите ввод из командной строки с помощью модуля «readline».
« линия чтения Модуль создает интерфейс для чтения пользовательского ввода из читаемого потока и возврата его ответа в качестве результирующего вывода. Это встроенный модуль, поэтому пользователь может импортировать его непосредственно в приложение Node.js, не устанавливая его, используя « НПМ ».
В этом сценарии он используется для получения входных данных из командной строки и их последующей печати на экране вывода. Вот его практическая реализация:
константа линия чтения '=' требовать ( 'линия чтения' )константа рл '=' линия чтения. создатьИнтерфейс ( {
вход : процесс. стандартный ввод ,
выход : процесс. стандартный вывод
} )
рл. вопрос ( `Лучшая платформа для техническое содержание ? ` , Веб-сайт => {
рл. вопрос ( `Какую категорию вы хотели бы изучить ? ` , категория => {
консоль. бревно ( `Сайт : $ { Веб-сайт } , Категория : $ { категория } ` )
рл. закрывать ( )
} )
} )
Описание приведенных выше строк кода выглядит следующим образом:
- Во-первых, « требовать ()» импортирует « линия чтения ” в текущем проекте Node.js.
- Далее « создатьИнтерфейс ()» указывает метод « вход» и «выход ” течет как объект. « вход ” поток использует “ процесс.stdin ” свойство для получения входных данных от пользователя.
- « выход ” поток использует “ процесс.stdout ” для чтения входного потока и печати его как стандартного вывода данного входного потока.
- После этого « rl.вопрос ()» принимает вводимые пользователем данные. Он передает вопрос в качестве первого аргумента и функцию обратного вызова в качестве второго аргумента. Данная функция стрелки обратного вызова извлекает введенные пользователем значения.
- В определении данного « Веб-сайт », и « категория ” функция обратного вызова со стрелкой, функция “ консоль.log ()» используется для отображения введенных значений.
- Наконец, « rl.закрыть ()» закрывает созданный выше интерфейс.
Выход
Инициировать « индекс .js», выполнив предоставленную команду:
индекс узла. jsСледующий вывод показывает интерфейс readline, который принимает вводимые пользователем данные из командной строки, а затем отображает введенное значение в качестве стандартного вывода:
Способ 2: принять ввод из командной строки с помощью модуля «readline-sync»
« Readline-синхронизация » — это сторонний модуль, который синхронно извлекает информацию, связанную с жестко запрограммированными вопросами, и сохраняет соответствующие ответы для будущих операций. Он действует как связь между клиентом и сервером из командной строки.
Основное различие между асинхронными и синхронными модулями заключается в том, что « асинхронный ” блокирует выполнение исходного кода до тех пор, пока указанная задача не будет выполнена, тогда как синхронные модули выполняют код построчно последовательно.
Установите модуль «readline-sync».
«readline-синхронизация» Модуль не является встроенным модулем, поэтому его необходимо установить вручную, выполнив следующую команду:
строка чтения установки npm - синхронизироватьВывод показывает, что модуль readline-sync был добавлен в текущий проект Node.js:
Теперь используйте « Readline-синхронизация » практически следуя приведенному фрагменту кода:
был readlineSync '=' требовать ( 'readline-синхронизация' ) ;был empName '=' readlineSync. вопрос ( 'Имя сотрудника: ' ) ;
был Джей Ди '=' readlineSync. вопрос ( 'Описание работы: ' ) ;
был компания '=' readlineSync. вопрос ( 'Компания: ' , {
} ) ;
консоль. бревно ( empName + 'работает как' + Джей Ди + ' в ' + компания ) ;
Объяснение приведенного выше кода следующее:
- Во-первых, « Readline-синхронизация ” модуль импортируется внутри файла, а его объект сохраняется в новой переменной “ readlineSync ».
- Далее запрос задается с помощью « вопрос ()», указав его в качестве аргумента.
- Та же процедура используется для задания следующих вопросов.
- После этого « консоль.log ()» используется для отображения введенных значений вместе со строкой в кавычках.
Выход
Выполните « индекс .js» файл:
индекс узла. jsВывод показывает, что вводимые пользователем данные были получены и отображены синхронно с помощью « Readline-синхронизация » модуль:
Способ 3: принять ввод из командной строки с помощью модуля «подсказка»
« быстрый » — это асинхронный модуль, который создает функцию подсказки для сохранения ввода пользователя в качестве значения переменной, а затем получения его в качестве результирующего вывода. Нет необходимости явно настраивать поток, доступный для чтения и записи, поэтому его довольно легко использовать по сравнению с « линия чтения » модуль.
Установите модуль «подсказки»
« быстрый » также является сторонним модулем, который можно легко установить с помощью « НПМ ' таким образом:
приглашение на установку npm -- сохранятьВ приведенной выше команде « -сохранять Флаг добавляет « быстрый ” модуль в “ пакет.json ' файл.
Можно проанализировать, что « быстрый » был добавлен в текущий проект Node.js:
Теперь используйте установленный « быстрый » практически с помощью следующего фрагмента кода:
константа быстрый '=' требовать ( 'быстрый' )быстрый. начинать ( )
быстрый. получать ( [ 'имя автора' , «Категория» ] , ( ошибаться , результат ) => {
если ( ошибаться ) {
бросать ошибаться
} еще {
консоль. бревно ( `$ { результат. имя автора } работает на $ { результат. Категория } ` )
}
} )
В приведенном выше блоке кода:
- « требовать ()» импортирует « быстрый » модуль в проект.
- « начинать ()» запускает приглашение.
- « получать ()» принимает вводимые пользователем данные через командную строку. Он определяет имена свойств и функцию стрелки обратного вызова в качестве первого и второго параметров.
- Функция обратного вызова с « ошибаться ' и ' результат Параметры определяют « если еще ' заявление.
- Если возникает какая-либо ошибка, то « если ” выдаст эту ошибку, в противном случае “ еще Блок ” отобразит значения указанных свойств в качестве вывода.
Выход
Запустите « индекс .js» файл:
индекс узла. jsСледующий вывод принимает вводимые пользователем данные на основе указанных свойств, а затем извлекает их значения в качестве выходных данных:
Способ 4: принять ввод из командной строки с помощью модуля «запрос»
В Node.js « исследователь » — это простой способ получить ввод из командной строки. Он включает в себя несколько полезных методов для получения входных данных от пользователей и последующего возврата результатов с помощью команды « отвечать » объект и «. затем ()» встроенный метод.
Это полезно для того, чтобы задавать пользователю различные типы вопросов через командную строку, такие как список, параметры, ввод, флажки и многое другое. Он предоставляет удобный способ сделать интерфейс командной строки интерактивным для задач на основе запросов.
Следуйте подробному руководству « Получите ввод из командной строки с помощью Node.js Inquirer » для практической демонстрации.
Совет: как передавать аргументы из командной строки в Node?
Пользователь также может передавать аргументы из командной строки. С этой целью « процесс.argv » имущество можно использовать. « аргв «» — это встроенное свойство модуля «process», которое используется для передачи аргументов из командной строки при запуске приложения Node.js с использованием « узел<имя файла> команда.
Следуйте подробному руководству « Передача аргументов из командной строки в Node.js » для практической демонстрации.
Это все, что касается приема входных данных из командной строки в Node.js.
Заключение
Чтобы принять ввод из командной строки, используйте асинхронный « линия чтения », или синхронное « Readline-синхронизация » модуль. Кроме того, это также может быть выполнено через « быстрый ' или ' исследователь » модуль. За исключением « красная линия-синхронизация », все остальные модули асинхронны. В этой статье обсуждались все возможные методы приема ввода из командной строки в Node.js.