Jak přijmout vstup z příkazového řádku v Node.js?

Jak Prijmout Vstup Z Prikazoveho Radku V Node Js



Node.js je dobře známé open-source bezplatné běhové prostředí JavaScriptu, které uživatelům umožňuje spouštět kód JavaScript ze souboru nebo přímo z příkazového řádku. Spuštění kódu JavaScript ze souboru vyžaduje externí soubor „. js ” file, zatímco příkazový řádek spouští kód JavaScript přímo řádek po řádku.

Někdy uživatel potřebuje nakonfigurovat informace při spouštění aplikace Node.js z příkazového řádku pomocí „ uzel “. V takové situaci musí uživatel předat tyto informace přímo jako vstup s příkazem provedení namísto toho, aby je zapisoval do souboru „. js “.







Tento zápis bude diskutovat o všech možných metodách přijímání vstupu z příkazového řádku v Node.js.



Jak přijmout vstup z příkazového řádku v Node.js?

Node.js nabízí následující moduly pro příjem vstupu z příkazového řádku:



Začněme s „ readline “modul.





Předpoklady : Než přejdete k praktické implementaci jakékoli metody, nejprve vytvořte soubor „. js ” souboru libovolného jména a zapište do něj veškerý zdrojový kód. Zde jsme vytvořili „ index .js“.

Metoda 1: Přijměte vstup z příkazového řádku pomocí modulu „readline“.

' readline Modul ” vytváří rozhraní pro čtení uživatelského vstupu z čitelného toku a vrácení jeho odpovědi jako výsledného výstupu. Jedná se o vestavěný modul, takže jej uživatel může importovat přímo do aplikace Node.js bez instalace pomocí „ npm “.



V tomto scénáři se používá k převzetí vstupu z příkazového řádku a jeho vytištění na výstupní obrazovce. Zde je jeho praktické provedení:

konst readline = vyžadovat ( 'readline' )
konst rl = readline. createInterface ( {
vstup : proces. stdin ,
výstup : proces. stdout
} )
rl. otázka ( „Nejlepší platforma pro technický obsah ? ' , webová stránka => {
rl. otázka ( „Kterou kategorii byste chtěli prozkoumat ? ' , kategorie => {
řídicí panel. log ( `Webové stránky : $ { webová stránka } , Kategorie : $ { kategorie } ' )
rl. zavřít ( )
} )
} )

Popis výše uvedených řádků kódu je následující:

  • Za prvé, „ vyžadovat ()“ metoda importuje „ readline ” v aktuálním projektu Node.js.
  • Dále, „ createInterface ()“ metoda specifikuje „ vstup a výstup “ proudí jako objekt. ' vstup “stream používá “ proces.stdin ” vlastnost pro převzetí vstupu od uživatele.
  • ' výstup “stream využívá “ proces.stdout ” vlastnost pro čtení vstupního toku a jeho tisk jako standardní výstup daného vstupního toku.
  • Poté se „ rl.otázka ()” metoda přebírá vstup od uživatele. Jako první předá otázku a jako druhý argument funkci zpětného volání. Daná funkce šipky zpětného volání načte uživatelem zadané hodnoty.
  • V definici daného „ webová stránka “ a „ kategorie funkce šipky zpětného volání, funkce konzole.log ()” metoda se používá k zobrazení zadaných hodnot.
  • Konečně, „ rl.zavřít ()” metoda zavře výše vytvořené rozhraní.

Výstup

Spusťte „ index .js” provedením poskytnutého příkazu:

index uzlu. js

Následující výstup zobrazuje rozhraní readline, které přebírá uživatelský vstup z příkazového řádku a poté zobrazuje zadanou hodnotu jako standardní výstup:

Metoda 2: Přijměte vstup z příkazového řádku pomocí modulu „readline-sync“.

' readline-sync “ je modul třetí strany, který synchronně získává informace související s pevně zakódovanými otázkami a ukládá jejich odpovídající odpovědi pro budoucí operace. Funguje jako komunikace mezi klientem a serverem z příkazové řádky.

Hlavní rozdíl mezi asynchronními a synchronními moduly spočívá v tom, že „ asynchronní ” blokuje provádění zdrojového kódu, dokud není provedena jeho specifikovaná úloha, zatímco synchronní moduly provádějí kód řádek po řádku sekvenčním způsobem.

Nainstalujte modul „readline-sync“.

The 'readline-sync' modul není vestavěný modul, takže je třeba jej nainstalovat ručně provedením níže uvedeného příkazu:

npm install readline - synchronizace

Výstup ukazuje, že modul readline-sync byl přidán do aktuálního projektu Node.js:

Nyní použijte „ readline-sync ” prakticky tím, že budete následovat daný fragment kódu:

byl readlineSync = vyžadovat ( 'readline-sync' ) ;
byl empName = readlineSync. otázka ( 'Jméno zaměstnance: ' ) ;
byl jd = readlineSync. otázka ( 'Popis práce: ' ) ;
byl společnost = readlineSync. otázka ( 'Společnost: ' , {
} ) ;
řídicí panel. log ( empName + 'funguje jako' + jd + ' v ' + společnost ) ;

Vysvětlení výše uvedeného kódu je následující:

  • Za prvé, „ readline-sync “ modul se naimportuje do souboru a jeho objekt se uloží do nové proměnné “ readlineSync “.
  • Dále je dotaz položen pomocí „ otázka ()” tím, že jej uvedete jako argument.
  • Stejný postup je použit pro kladení dalších otázek.
  • Poté se „ konzole.log ()” metoda se používá k zobrazení zadaných hodnot spolu s řetězcem v uvozovkách.

Výstup

Proveďte „ index soubor .js”:

index uzlu. js

Výstup ukazuje, že synchronně byl vstup od uživatelů převzat a zobrazen pomocí „ readline-sync modul:

Metoda 3: Přijměte vstup z příkazového řádku pomocí modulu „výzva“.

' výzva ” je asynchronní modul, který vytváří výzvu k uložení uživatelského vstupu jako hodnoty proměnné a poté jej načte jako výsledný výstup. Není třeba explicitně konfigurovat čitelný a zapisovatelný stream, proto je jeho použití poměrně snadné ve srovnání s „ readline “modul.

Nainstalujte „prompt“ modul

' výzva “ je také modul třetí strany, který lze snadno nainstalovat pomocí „ npm ' Takto:

výzva k instalaci npm -- Uložit

Ve výše uvedeném příkazu je „ -Uložit “ příznak přidává „ výzva „modul do „ package.json “.

Lze analyzovat, že „ výzva ” byl přidán do aktuálního projektu Node.js:

Nyní použijte nainstalovaný „ výzva ” modul prakticky s pomocí následujícího úryvku kódu:

konst výzva = vyžadovat ( 'výzva' )
výzva. Start ( )
výzva. dostat ( [ 'authorName' , 'Kategorie' ] , ( chybovat , výsledek ) => {
-li ( chybovat ) {
házet chybovat

} jiný {
řídicí panel. log ( `$ { výsledek. jméno autora } funguje na $ { výsledek. Kategorie } ' )

}
} )

Ve výše uvedeném bloku kódu:

  • ' vyžadovat ()“ metoda importuje „ výzva ” do projektu.
  • ' Start ()” metoda spustí výzvu.
  • ' dostat ()” metoda přebírá vstup od uživatele přes příkazový řádek. Jako první a druhý parametr určuje názvy vlastností a funkci zpětného volání.
  • Funkce zpětného volání s „ chybovat ' a ' výsledek ” parametry definují “ pokud-jinak ' prohlášení.
  • Pokud se vyskytne jakýkoli typ chyby, zobrazí se „ -li 'blok vyvolá tuto chybu, jinak se ' jiný ” blok zobrazí hodnoty zadaných vlastností jako výstup.

Výstup

Spusťte „ index soubor .js”:

index uzlu. js

Následující výstup převezme uživatelský vstup na základě zadaných vlastností a poté načte jejich hodnoty jako výstup:

Metoda 4: Přijměte vstup z příkazového řádku pomocí modulu „tazatel“.

V Node.js je „ tazatel ” je snadný způsob, jak převzít vstup z příkazového řádku. Dodává se s několika užitečnými metodami, jak převzít vstup od uživatelů a poté výstup vrátit pomocí „ Odpovědět “objekt a “. pak ()“ vestavěná metoda.

Je to užitečné pro kladení různých typů otázek od uživatele prostřednictvím příkazového řádku, jako je seznam, možnosti, vstup, zaškrtávací políčka a mnoho dalšího. Poskytuje pohodlný způsob, jak učinit rozhraní příkazového řádku interaktivním pro úlohy založené na dotazech.

Postupujte podle podrobného průvodce na „ Vstupte z příkazového řádku pomocí Node.js Inquirer “ pro praktickou ukázku.

Tip: Jak předávat argumenty z příkazového řádku v Node?

Uživatel může také předávat argumenty z příkazového řádku. Za tímto účelem je „ proces.argv ” vlastnost lze použít. ' argv “ je vestavěná vlastnost modulu „process“, která se používá k předávání argumentů z příkazového řádku při spuštění aplikace Node.js pomocí „ uzel “příkaz.

Postupujte podle podrobného průvodce na „ Předávání argumentů z příkazového řádku v Node.js “ pro praktickou ukázku.

To je vše o přijímání vstupu z příkazového řádku v Node.js.

Závěr

Chcete-li přijmout vstup z příkazového řádku, použijte asynchronní „ readline “, nebo synchronní „ readline-sync “modul. Navíc to lze provést také prostřednictvím „ výzva ' nebo ' tazatel “modul. Kromě „ redline-sync “, všechny zbývající moduly jsou asynchronní. Tento zápis pojednává o všech možných metodách přijímání vstupu z příkazového řádku v Node.js.