Ako prijať vstup z príkazového riadku v Node.js?

Ako Prijat Vstup Z Prikazoveho Riadku V Node Js



Node.js je dobre známe open-source bezplatné prostredie JavaScript runtime, ktoré umožňuje používateľom spúšťať kód JavaScript zo súboru alebo priamo z príkazového riadku. Spustenie kódu JavaScript zo súboru vyžaduje externý súbor „. js ” súbor, zatiaľ čo príkazový riadok spúšťa kód JavaScript priamo riadok po riadku.

Používateľ niekedy potrebuje nakonfigurovať informácie pri spúšťaní aplikácie Node.js z príkazového riadka cez „ uzol “. V takejto situácii musí používateľ odovzdať tieto informácie priamo ako vstup príkazu na vykonanie namiesto toho, aby ich zapisoval do súboru „. js “.







Tento zápis bude diskutovať o všetkých možných metódach prijatia vstupu z príkazového riadku v Node.js.



Ako prijať vstup z príkazového riadku v Node.js?

Node.js ponúka nasledujúce moduly na prijímanie vstupu z príkazového riadku:



Začnime s „ readline “.





Predpoklady : Pred prechodom na praktickú implementáciu akejkoľvek metódy najprv vytvorte súbor „. js ” súbor s ľubovoľným názvom a zapíšte doň celý zdrojový kód. Tu sme vytvorili „ index .js“.

Metóda 1: Prijmite vstup z príkazového riadka pomocou modulu „readline“.

' readline ” modul vytvára rozhranie na čítanie užívateľského vstupu z čitateľného toku a vrátenie jeho odpovede ako výsledného výstupu. Ide o vstavaný modul, takže ho používateľ môže importovať priamo do aplikácie Node.js bez inštalácie pomocou „ npm “.



V tomto scenári sa používa na prevzatie vstupu z príkazového riadka a jeho vytlačenie na výstupnej obrazovke. Tu je jeho praktická implementácia:

konšt readline = vyžadovať ( 'readline' )
konšt rl = readline. createInterface ( {
vstup : proces. stdin ,
výkon : proces. stdout
} )
rl. otázka ( „Najlepšia platforma pre technický obsah ? ` , webovej stránky => {
rl. otázka ( „Ktorú kategóriu by ste chceli preskúmať? ? ` , kategórii => {
konzola. log ( `Webová stránka : $ { webovej stránky } , Kategória : $ { kategórii } ` )
rl. Zavrieť ( )
} )
} )

Popis vyššie uvedených riadkov kódu je nasledujúci:

  • Po prvé, „ vyžadovať ()“ metóda importuje „ readline ” v aktuálnom projekte Node.js.
  • Ďalej, „ createInterface ()“ metóda špecifikuje „ vstup“ a „výstup “ prúdi ako objekt. ' vstup “stream používa “ proces.stdin ” vlastnosť na prevzatie vstupu od používateľa.
  • ' výkon “stream využíva “ proces.stdout ” vlastnosť na čítanie vstupného toku a jeho tlač ako štandardný výstup daného vstupného toku.
  • Potom sa „ rl.otázka ()“ metóda preberá vstup od používateľa. Otázku odovzdá ako prvý a funkciu spätného volania ako druhý argument. Daná funkcia šípky spätného volania načíta hodnoty zadané používateľom.
  • V definícii daného „ webovej stránky “ a „ kategórii funkcia šípky spätného volania, funkcia konzola.log ()“ metóda sa používa na zobrazenie zadaných hodnôt.
  • Nakoniec, „ rl.zavrieť ()” metóda zatvorí vyššie vytvorené rozhranie.

Výkon

Iniciovať „ index .js” vykonaním poskytnutého príkazu:

index uzla. js

Nasledujúci výstup zobrazuje rozhranie čítacieho riadku, ktoré preberá vstup používateľa z príkazového riadku a potom zobrazuje zadanú hodnotu ako štandardný výstup:

Metóda 2: Prijmite vstup z príkazového riadka pomocou modulu „readline-sync“.

' readline-sync “ je modul tretej strany, ktorý synchrónne získava informácie súvisiace s pevne zakódovanými otázkami a ukladá ich zodpovedajúce odpovede pre budúce operácie. Funguje ako komunikácia medzi klientom a serverom z príkazového riadku.

Hlavný rozdiel medzi asynchrónnymi a synchrónnymi modulmi je v tom, že „ asynchrónne ” blokuje vykonávanie zdrojového kódu, kým sa nevykoná jeho špecifikovaná úloha, zatiaľ čo synchrónne moduly vykonávajú kód riadok po riadku sekvenčným spôsobom.

Nainštalujte modul „readline-sync“.

The „readline-sync“ modul nie je vstavaný modul, takže je potrebné ho nainštalovať manuálne vykonaním nižšie uvedeného príkazu:

npm install readline - synchronizácia

Výstup ukazuje, že modul readline-sync bol pridaný do aktuálneho projektu Node.js:

Teraz použite „ readline-sync ” modul prakticky podľa daného útržku kódu:

bol readlineSync = vyžadovať ( 'readline-sync' ) ;
bol empName = readlineSync. otázka ( 'Meno zamestnanca: ' ) ;
bol jd = readlineSync. otázka ( 'Popis práce: ' ) ;
bol spoločnosti = readlineSync. otázka ( 'Spoločnosť:' , {
} ) ;
konzola. log ( empName + 'funguje ako' + jd + ' v ' + spoločnosti ) ;

Vysvetlenie vyššie uvedeného kódu je nasledovné:

  • Po prvé, „ readline-sync “ modul sa importuje do súboru a jeho objekt sa uloží do novej premennej “ readlineSync “.
  • Ďalej je dotaz položený pomocou „ otázka ()” tak, že ju špecifikujete ako argument.
  • Rovnaký postup sa používa pri kladení ďalších otázok.
  • Potom sa „ konzola.log ()” metóda sa používa na zobrazenie zadaných hodnôt spolu s reťazcom v úvodzovkách.

Výkon

Vykonajte „ index súbor .js:

index uzla. js

Výstup ukazuje, že synchrónnym spôsobom sa vstup od používateľov prevzal a zobrazil pomocou „ readline-sync modul:

Metóda 3: Prijmite vstup z príkazového riadka pomocou modulu „výzva“.

' výzva “ je asynchrónny modul, ktorý vytvára funkciu výzvy na uloženie vstupu používateľa ako hodnoty premennej a jeho následné získanie ako výsledný výstup. Nie je potrebné explicitne konfigurovať čitateľný a zapisovateľný stream, preto je jeho použitie celkom jednoduché v porovnaní s „ readline “.

Nainštalujte „výzvový“ modul

' výzva “ je tiež modul tretej strany, ktorý možno jednoducho nainštalovať pomocou „ npm ' touto cestou:

výzva na inštaláciu npm -- uložiť

Vo vyššie uvedenom príkaze „ – uložiť “ vlajka pridáva „ výzva „modul do „ package.json “.

Dá sa analyzovať, že „ výzva ” bol pridaný do aktuálneho projektu Node.js:

Teraz použite nainštalovaný „ výzva ” modul prakticky pomocou nasledujúceho útržku kódu:

konšt výzva = vyžadovať ( 'prompt' )
výzva. začať ( )
výzva. dostať ( [ 'authorName' , 'kategória' ] , ( chybovať , výsledok ) => {
ak ( chybovať ) {
hodiť chybovať

} inak {
konzola. log ( `$ { výsledok. meno autora } funguje na $ { výsledok. Kategória } ` )

}
} )

Vo vyššie uvedenom bloku kódu:

  • ' vyžadovať ()“ metóda importuje „ výzva ” modul do projektu.
  • ' začať ()” metóda spustí výzvu.
  • ' dostať ()” metóda preberá vstup od používateľa cez príkazový riadok. Špecifikuje názvy vlastností a funkciu šípky spätného volania ako prvý a druhý parameter.
  • Funkcia spätného volania s „ chybovať “ a „ výsledok ” parametre definujú “ ak-inak “vyhlásenie.
  • Ak sa vyskytne akýkoľvek typ chyby, potom sa zobrazí „ ak 'blok vyvolá túto chybu, inak sa ' inak ” blok zobrazí hodnoty zadaných vlastností ako výstup.

Výkon

Spustite „ index súbor .js:

index uzla. js

Nasledujúci výstup prevezme vstup používateľa na základe špecifikovaných vlastností a potom získa ich hodnoty ako výstup:

Metóda 4: Prijmite vstup z príkazového riadku pomocou modulu „dopytovateľ“.

V Node.js je „ pýtajúci sa “ je jednoduchý spôsob, ako prevziať vstup z príkazového riadku. Dodáva sa s niekoľkými užitočnými metódami, ako prevziať vstup od používateľov a potom vrátiť výstup pomocou „ odpoveď “objekt a “. potom ()“ vstavaná metóda.

Je to užitočné pri kladení rôznych typov otázok používateľovi prostredníctvom príkazového riadka, ako je zoznam, možnosti, vstup, začiarkavacie políčka a mnoho ďalších. Poskytuje pohodlný spôsob, ako urobiť rozhranie príkazového riadka interaktívnym pre úlohy založené na dotazoch.

Postupujte podľa podrobného sprievodcu na „ Prevezmite vstup z príkazového riadka pomocou Node.js Inquirer “ na praktickú ukážku.

Tip: Ako odovzdať argumenty z príkazového riadku v Node?

Používateľ môže tiež zadať argumenty z príkazového riadku. Na tento účel sa „ proces.argv ” možno použiť. ' argv “ je vstavaná vlastnosť modulu „process“, ktorá sa používa na odovzdávanie argumentov z príkazového riadka pri spustení aplikácie Node.js pomocou „ uzol “príkaz.

Postupujte podľa podrobného sprievodcu na „ Odovzdajte argumenty z príkazového riadku v Node.js “ na praktickú ukážku.

To je všetko o prijímaní vstupu z príkazového riadku v Node.js.

Záver

Ak chcete prijať vstup z príkazového riadka, použite asynchrónny „ readline “, alebo synchrónny „ readline-sync “. Okrem toho to možno vykonať aj prostredníctvom „ výzva ' alebo ' pýtajúci sa “. Okrem „ redline-sync “, všetky zostávajúce moduly sú asynchrónne. Tento zápis rozobral všetky možné metódy na prijatie vstupu z príkazového riadku v Node.js.