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
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:
- Pomocí modulu „readline“.
- Pomocí modulu „readline-sync“.
- Pomocí „výzvového“ modulu
- Pomocí modulu „tazatel“.
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. jsNá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 - synchronizaceVý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. jsVý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žitVe 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. jsNá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
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.