Како прихватити унос из командне линије у Ноде.јс?

Kako Prihvatiti Unos Iz Komandne Linije U Node Js



Ноде.јс је добро познато опен-соурце бесплатно ЈаваСцрипт окружење за извршавање које омогућава корисницима да изврше ЈаваСцрипт код из датотеке или директно из командне линије. Покретање ЈаваСцрипт кода из датотеке захтева екстерни „. јс ” датотеку док командна линија извршава ЈаваСцрипт код директно ред по ред.

Понекад корисник треба да конфигурише информације док покреће апликацију Ноде.јс из командне линије преко „ чвор<име датотеке> ”. У таквој ситуацији, корисник треба да проследи те информације директно као улаз са командом за извршавање уместо да их упише у „. јс ” фајл.







У овом тексту ће се расправљати о свим могућим методама за прихватање уноса из командне линије у Ноде.јс.



Како прихватити унос из командне линије у Ноде.јс?

Ноде.јс нуди следеће модуле за прихватање уноса из командне линије:



Почнимо са „ реадлине ” модул.





Предуслови : Пре него што пређете на практичну примену било које методе, прво направите „. јс ” датотеку било ког имена и у њу упишите сав изворни код. Овде смо направили „ индекс .јс” датотеку.

Метод 1: Прихватите унос из командне линије помоћу модула „реадлине“.

реадлине ” модул креира интерфејс за читање корисничког уноса из читљивог тока и враћање његовог одговора као резултантног излаза. То је уграђени модул тако да корисник може да га увезе директно у апликацију Ноде.јс без инсталирања помоћу „ нпм ”.



У овом сценарију, користи се за преузимање уноса из командне линије, а затим за штампање на излазном екрану. Ево његове практичне примене:

конст реадлине = захтевају ( 'реадлине' )
конст рл = реадлине. цреатеИнтерфаце ( {
улазни : процес. стдин ,
излаз : процес. стдоут
} )
рл. питање ( `Најбоља платформа за технички садржај ? ` , веб сајт => {
рл. питање ( `Коју категорију желите да истражите ? ` , категорија => {
конзола. Пријава ( `Веб-сајт : $ { веб сајт } , Категорија : $ { категорија } ` )
рл. Близу ( )
} )
} )

Опис горњих линија кода је следећи:

  • Прво, „ захтевају ()“ метод увози „ реадлине ” модул у тренутном пројекту Ноде.јс.
  • Затим, „ цреатеИнтерфаце ()“ метод специфицира „ улаз и излаз ” токови као објекат. „ улазни ” стреам користи “ процесс.стдин ” својство за узимање уноса од корисника.
  • излаз ” стреам користи “ процес.стдоут ” својство за читање улазног тока и његово штампање као стандардни излаз датог улазног тока.
  • Након тога, „ рл.питање ()” метода узима унос од корисника. Он прослеђује питање као први и функцију повратног позива као други аргумент. Дата функција стрелице повратног позива преузима вредности које је унео корисник.
  • У дефиницији датог „ веб сајт ”, и „ категорија ” функција стрелице за повратни позив, „ цонсоле.лог ()” се користи за приказ унетих вредности.
  • На крају, „ рл.цлосе ()” метода затвара претходно креирани интерфејс.

Излаз

Покрени „ индекс .јс” датотеку извршавањем наведене команде:

индекс чвора. јс

Следећи излаз приказује интерфејс за читање који узима кориснички унос из командне линије, а затим приказује унету вредност као стандардни излаз:

Метод 2: Прихватите унос из командне линије користећи модул „реадлине-синц“

реадлине-синц ” је модул треће стране који синхроно преузима информације везане за тврдокодирана питања и чува њихове одговарајуће одговоре за будуће операције. Делује као комуникација између клијента и сервера из командне линије.

Главна разлика између асинхроних и синхроних модула је у томе што „ асинхрони ” блокира извршавање изворног кода све док се његов специфицирани задатак не изврши, док синхрони модули извршавају код ред по ред на секвенцијални начин.

Инсталирајте модул „реадлине-синц“.

Тхе „реадлине-синц“ модул није уграђени модул, тако да га треба ручно инсталирати извршавањем наредбе испод:

нпм инсталл реадлине - синхронизовати

Излаз показује да је модул реадлине-синц додат тренутном пројекту Ноде.јс:

Сада користите „ реадлине-синц ” практично пратећи дати исјечак кода:

био реадлинеСинц = захтевају ( 'реадлине-синц' ) ;
био емпНаме = реадлинеСинц. питање ( 'Име запосленог: ' ) ;
био јд = реадлинеСинц. питање ( 'Опис посла: ' ) ;
био компанија = реадлинеСинц. питање ( 'Компанија: ' , {
} ) ;
конзола. Пријава ( емпНаме + ' ради као ' + јд + 'у' + компанија ) ;

Објашњење горњег кода је следеће:

  • Прво, „ реадлине-синц ” модул се увози унутар датотеке и његов објекат се чува у новој променљивој “ реадлинеСинц ”.
  • Затим се упит поставља уз помоћ „ питање ()” тако што ћете га навести као аргумент.
  • Исти поступак се користи и за постављање наредних питања.
  • Након тога, „ цонсоле.лог ()” метода се користи за приказ унетих вредности заједно са стрингом у наводницима.

Излаз

Извршите „ индекс .јс” датотека:

индекс чвора. јс

Излаз показује да је на синхрони начин, унос од корисника узет и приказан помоћу „ реадлине-синц ” модул:

Метод 3: Прихватите унос из командне линије помоћу модула „промпт“.

промпт ” је асинхрони модул који креира функцију промптовања за чување корисничког уноса као вредности променљиве, а затим га преузима као резултујући излаз. Не мора експлицитно да конфигурише стрим за читање и писање, због чега је прилично једноставан за коришћење у поређењу са „ реадлине ” модул.

Инсталирајте 'промпт' модул

промпт ” је такође модул треће стране који се лако може инсталирати уз помоћ „ нпм ' на овај начин:

нпм инсталл промпт -- сачувати

У горњој команди, „ -сачувати ” застава додаје „ промпт “ модул за “ пацкаге.јсон ” фајл.

Може се анализирати да је „ промпт ” је додат тренутном пројекту Ноде.јс:

Сада користите инсталирани „ промпт ” модул практично уз помоћ следећег исечка кода:

конст промпт = захтевају ( 'промпт' )
промпт. почетак ( )
промпт. добити ( [ 'ауторНаме' , 'Категорија' ] , ( ерр , резултат ) => {
ако ( ерр ) {
бацити ерр

} друго {
конзола. Пријава ( `$ { резултат. аутхорНаме } ради на $ { резултат. Категорија } ` )

}
} )

У горе наведеном блоку кода:

  • захтевају ()“ метод увози „ промпт ” модул у пројекат.
  • почетак ()” метода покреће промпт.
  • добити ()” метод преузима унос од корисника преко командне линије. Он наводи називе својстава и функцију стрелице повратног позива као први и други параметар.
  • Функција повратног позива са „ ерр ' и ' резултат ” параметри дефинишу „ ако друго ' изјава.
  • Ако дође до било које врсте грешке, онда „ ако ” блок ће избацити ту грешку у супротном „ друго ” блок ће приказати вредности наведених својстава као излаз.

Излаз

Покренути ' индекс .јс” датотека:

индекс чвора. јс

Следећи излаз узима кориснички унос на основу наведених својстава, а затим преузима њихове вредности као излаз:

Метод 4: Прихватите унос из командне линије помоћу модула „инкуирер“.

У Ноде.јс, „ испитивач ” је једноставан начин за преузимање уноса из командне линије. Долази са неколико корисних метода за примање уноса од корисника, а затим враћање излаза помоћу „ одговор „објекат и „. онда ()” уграђени метод.

Корисно је за постављање различитих врста питања од корисника преко командне линије, као што су листа, опције, унос, поља за потврду и још много тога. Пружа згодан начин да интерфејс командне линије учини интерактивним за задатке засноване на упитима.

Пратите детаљан водич на „ Узмите унос из командне линије користећи Ноде.јс Инкуирер ” за практичну демонстрацију.

Савет: Како пренети аргументе из командне линије у чвору?

Корисник такође може да пренесе аргументе из командне линије. У ту сврху, „ процес.аргв ” својство се може користити. „ аргв ” је уграђено својство модула „процес” које се користи за прослеђивање аргумената из командне линије док се покреће Ноде.јс апликација користећи „ чвор<име датотеке> ” команда.

Пратите детаљан водич на „ Проследите аргументе из командне линије у Ноде.јс ” за практичну демонстрацију.

То је све о прихватању уноса из командне линије у Ноде.јс.

Закључак

Да бисте прихватили унос из командне линије, користите асинхрони „ реадлине ”, или синхрони „ реадлине-синц ” модул. Штавише, може се извести и преко „ промпт ' или ' испитивач ” модул. Осим „ редлине-синц ” модул, сви преостали модули су асинхрони. Овај текст разматра све могуће методе за прихватање уноса из командне линије у Ноде.јс.