Как принять ввод из командной строки в Node.js?

Kak Prinat Vvod Iz Komandnoj Stroki V Node Js



Node.js — это известная бесплатная среда выполнения JavaScript с открытым исходным кодом, которая позволяет пользователям выполнять код JavaScript из файла или непосредственно из командной строки. Для запуска кода JavaScript из файла требуется внешний файл «. js ” file, в то время как командная строка выполняет код JavaScript непосредственно построчно.

Иногда пользователю необходимо настроить информацию при запуске приложения Node.js из командной строки через « узел<имя файла> ». В такой ситуации пользователю необходимо передать эту информацию непосредственно в качестве входных данных с командой выполнения, а не записывать ее в файл «. js ' файл.







В этой статье будут обсуждаться все возможные методы приема ввода из командной строки в Node.js.



Как принять ввод из командной строки в Node.js?

Node.js предлагает следующие модули для приема ввода из командной строки:



Начнем с « линия чтения » модуль.





Предварительные условия : Прежде чем переходить к практической реализации какого-либо метода, сначала создайте файл «. 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.