Как да приемате въвеждане от командния ред в Node.js?

Kak Da Priemate V Vezdane Ot Komandnia Red V Node Js



Node.js е добре позната свободна среда за изпълнение на JavaScript с отворен код, която позволява на потребителите да изпълняват кода на JavaScript от файл или директно от командния ред. Изпълнението на JavaScript код от файл изисква външен “. js ”, докато командният ред изпълнява кода на JavaScript директно ред по ред.

Понякога потребителят трябва да конфигурира информацията, докато стартира приложението Node.js от командния ред чрез „ възел<име на файл> ”. В такава ситуация потребителят трябва да предаде тази информация директно като вход с командата за изпълнение, вместо да я записва в „. js ” файл.







Това описание ще обсъди всички възможни методи за приемане на въвеждане от командния ред в Node.js.



Как да приемате въвеждане от командния ред в Node.js?

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



Да започнем с „ линия за четене ” модул.





Предпоставки : Преди да преминете към практическото прилагане на който и да е метод, първо създайте „. js ” файл с произволно име и запишете целия изходен код в него. Тук създадохме „ индекс .js” файл.

Метод 1: Приемане на въвеждане от командния ред с помощта на модула „readline“.

линия за четене ” модулът създава интерфейс за четене на потребителския вход от четливия поток и връщане на неговия отговор като резултатен изход. Това е вграден модул, така че потребителят може да го импортира директно в приложението Node.js, без да го инсталира чрез „ npm ”.



В този сценарий той се използва, за да вземе входа от командния ред и след това да го отпечата на изходния екран. Ето практическото му изпълнение:

конст линия за четене = изискват ( 'readline' )
конст rl = линия за четене. createInterface ( {
вход : процес. stdin ,
изход : процес. стандартен изход
} )
rl. въпрос ( „Най-добрата платформа за техническо съдържание ? ` , уебсайт => {
rl. въпрос ( „Коя категория искате да разгледате ? ` , категория => {
конзола. дневник ( `Уеб сайт : $ { уебсайт } , Категория : $ { категория } ` )
rl. близо ( )
} )
} )

Описанието на горните кодови редове е както следва:

  • Първо, „ изискват ()” методът импортира „ линия за четене ” в текущия проект Node.js.
  • След това „ createInterface ()” методът определя „ вход” и “изход ” потоци като обект. „ вход ” потокът използва „ process.stdin ” свойство за приемане на информация от потребителя.
  • изход ” потокът използва „ process.stdout ” свойство за четене на входния поток и отпечатването му като стандартен изход на дадения входен поток.
  • След това „ rl.въпрос ()” методът приема входните данни от потребителя. Той предава въпроса като първи и функцията за обратно извикване като втори аргумент. Дадената функция със стрелка за обратно извикване извлича въведените от потребителя стойности.
  • В дефиницията на даденото „ уебсайт “, и „ категория ” функция стрелка за обратно извикване, функцията „ console.log ()” се използва методът за показване на въведените стойности.
  • И накрая, „ rl.затвори ()” затваря създадения по-горе интерфейс.

Изход

Инициирайте „ индекс .js” файл, като изпълните предоставената команда:

индекс на възел. js

Следният изход показва интерфейс за четене, който приема въведеното от потребителя от командния ред и след това показва въведената стойност като стандартен изход:

Метод 2: Приемане на въвеждане от командния ред с помощта на модула „readline-sync“

readline-sync ” е модулът на трета страна, който извлича синхронно информацията, свързана с твърдо кодирани въпроси, и съхранява съответните им отговори за бъдещи операции. Той действа като комуникация между клиента и сървъра от командния ред.

Основната разлика между асинхронните и синхронните модули е, че „ асинхронен ” блокира изпълнението на изходния код, докато определената му задача не бъде изпълнена, докато синхронните модули изпълняват кода ред по ред по последователен начин.

Инсталирайте модула „readline-sync“.

The „readline-sync“ модулът не е вграден модул, така че трябва да се инсталира ръчно чрез изпълнение на командата по-долу:

npm инсталирайте readline - синхронизиране

Резултатът показва, че модулът readline-sync е добавен към текущия проект Node.js:

Сега използвайте „ readline-sync ” модул практически, като следвате дадения кодов фрагмент:

беше readlineSync = изискват ( 'readline-sync' ) ;
беше empName = readlineSync. въпрос ( 'Име на служителя: ' ) ;
беше jd = readlineSync. въпрос ( 'Описание на работата: ' ) ;
беше компания = readlineSync. въпрос ( 'Компания: ' , {
} ) ;
конзола. дневник ( empName + 'работи като' + jd + 'в' + компания ) ;

Обяснението на горния код е както следва:

  • Първо, „ readline-sync ' модулът се импортира във файла и неговият обект се съхранява в нова променлива ' readlineSync ”.
  • След това заявката се задава с помощта на „ въпрос ()”, като го посочите като аргумент.
  • Същата процедура се използва и при задаването на следващите въпроси.
  • След това „ console.log ()” методът се използва за показване на въведените стойности заедно с цитирания низ.

Изход

Изпълнете „ индекс .js” файл:

индекс на възел. js

Резултатът показва, че по синхронен начин входът от потребителите е бил взет и показан с помощта на „ readline-sync ” модул:

Метод 3: Приемане на въвеждане от командния ред с помощта на модула „подкана“.

подкана ” е асинхронен модул, който създава подканваща функция за съхраняване на потребителския вход като стойност на променливата и след това го извлича като резултатен изход. Не е необходимо да конфигурирате изрично потока за четене и запис, поради което е доста лесен за използване в сравнение с „ линия за четене ” модул.

Инсталирайте модула „подкана“.

подкана ” също е модул на трета страна, който може лесно да се инсталира с помощта на „ npm ' по този начин:

подкана за инсталиране на npm -- спаси

В горната команда, „ – спаси ” флаг добавя „ подкана ” към „ package.json ” файл.

Може да се анализира, че „ подкана ” е добавен към текущия проект Node.js:

Сега използвайте инсталирания „ подкана ” практически с помощта на следния кодов фрагмент:

конст подкана = изискват ( 'бързо' )
подкана. започнете ( )
подкана. получавам ( [ 'authorName' , „Категория“ ] , ( грешка , резултат ) => {
ако ( грешка ) {
хвърлям грешка

} друго {
конзола. дневник ( `$ { резултат. име на автор } работи на $ { резултат. Категория } ` )

}
} )

В горния кодов блок:

  • изискват ()” методът импортира „ подкана ” в проекта.
  • започнете ()” стартира подканата.
  • получавам ()” приема входните данни от потребителя чрез командния ред. Той определя имената на свойствата и функцията стрелка за обратно извикване като първи и втори параметър.
  • Функцията за обратно извикване с „ грешка ' и ' резултат ” параметри определя „ ако-иначе ” изявление.
  • Ако възникне някакъв вид грешка, тогава „ ако ' ще изведе тази грешка, в противен случай ' друго ” ще покаже стойностите на посочените свойства като изход.

Изход

Стартирайте „ индекс .js” файл:

индекс на възел. js

Следният изход приема въведените от потребителя въз основа на посочените свойства и след това извлича техните стойности като изход:

Метод 4: Приемане на въвеждане от командния ред с помощта на модула „inquirer“.

В Node.js, „ питащ ” е лесен начин да вземете входа от командния ред. Предлага се с няколко полезни метода за приемане на информация от потребителите и след това връщане на изхода чрез „ отговор ” обект и „. тогава ()” вграден метод.

Полезно е за задаване на различни видове въпроси от потребителя чрез командния ред, като списък, опции, въвеждане, квадратчета за отметка и много други. Той предоставя удобен начин да направите интерфейса на интерфейса на командния ред интерактивен за задачи, базирани на заявки.

Следвайте подробното ръководство на „ Вземете вход от командния ред с помощта на Node.js Inquirer ” за практическа демонстрация.

Съвет: Как да предавате аргументи от командния ред в Node?

Потребителят може също да предава аргументи от командния ред. За тази цел „ process.argv ” имотът може да се използва. „ argv ” е вграденото свойство на модула „процес”, който се използва за предаване на аргументите от командния ред, докато се изпълнява приложението Node.js с помощта на „ възел<име на файл> ” команда.

Следвайте подробното ръководство на „ Предавайте аргументи от командния ред в Node.js ” за практическа демонстрация.

Това е всичко относно приемането на вход от командния ред в Node.js.

Заключение

За да приемете въвеждането от командния ред, използвайте асинхронния „ линия за четене “, или синхронното „ readline-sync ” модул. Освен това може да се извърши и чрез „ подкана ' или ' питащ ” модул. С изключение на „ redline-sync ”, всички останали модули са асинхронни. Това описание обсъди всички възможни методи за приемане на вход от командния ред в Node.js.