Kako sprejeti vnos iz ukazne vrstice v Node.js?

Kako Sprejeti Vnos Iz Ukazne Vrstice V Node Js



Node.js je znano odprtokodno brezplačno izvajalno okolje JavaScript, ki uporabnikom omogoča izvajanje kode JavaScript iz datoteke ali neposredno iz ukazne vrstice. Zagon kode JavaScript iz datoteke zahteva zunanji ». js ” ukaz datoteke, medtem ko ukazna vrstica izvaja kodo JavaScript neposredno vrstico za vrstico.

Včasih mora uporabnik konfigurirati podatke med zagonom aplikacije Node.js iz ukazne vrstice prek » vozlišče ”. V takšni situaciji mora uporabnik posredovati te informacije neposredno kot vhod z izvršilnim ukazom, namesto da jih zapiše v datoteko ». js ' mapa.







Ta zapis bo obravnaval vse možne metode za sprejemanje vnosa iz ukazne vrstice v Node.js.



Kako sprejeti vnos iz ukazne vrstice v Node.js?

Node.js ponuja naslednje module za sprejemanje vnosa iz ukazne vrstice:



Začnimo z ' readline ” modul.





Predpogoji : Preden preidete na praktično izvajanje katere koli metode, najprej ustvarite ». js ” s poljubnim imenom in vanjo zapišite vso izvorno kodo. Tukaj smo ustvarili ' kazalo .js«.

1. način: Sprejmite vnos iz ukazne vrstice z uporabo modula »readline«.

' readline ” modul ustvari vmesnik za branje uporabniškega vnosa iz berljivega toka in vrnitev njegovega odgovora kot končni rezultat. Je vgrajen modul, tako da ga lahko uporabnik uvozi neposredno v aplikacijo Node.js, ne da bi ga namestil z uporabo » npm ”.



V tem scenariju se uporablja za prevzem vnosa iz ukazne vrstice in ga nato natisne na izhodni zaslon. Tukaj je njegova praktična izvedba:

konst readline = zahtevati ( 'readline' )
konst rl = readline. createInterface ( {
vnos : postopek. stdin ,
izhod : postopek. stdout
} )
rl. vprašanje ( `Najboljša platforma za tehnične vsebine ? ` , Spletna stran => {
rl. vprašanje ( `Katero kategorijo bi radi raziskali ? ` , kategorijo => {
konzola. dnevnik ( `Spletna stran : $ { Spletna stran } , Kategorija : $ { kategorijo } ` )
rl. blizu ( )
} )
} )

Opis zgornjih vrstic kode je naslednji:

  • Prvič, ' zahtevati ()' metoda uvozi ' readline ” v trenutnem projektu Node.js.
  • Nato je ' createInterface ()' metoda določa ' vhod' in 'izhod ” pretaka kot objekt. ' vnos » tok uporablja » proces.stdin ” lastnost za sprejemanje vnosa od uporabnika.
  • ' izhod ' tok uporablja ' proces.stdout ” lastnost za branje vhodnega toka in njegovo tiskanje kot standardni izhod danega vhodnega toka.
  • Po tem je ' rl.vprašanje ()« vzame vnos od uporabnika. Vprašanje posreduje kot prvi in ​​funkcijo povratnega klica kot drugi argument. Podana puščica za povratni klic pridobi vrednosti, ki jih je vnesel uporabnik.
  • V definiciji danega ' Spletna stran ', in ' kategorijo puščica za povratni klic, console.log ()” metoda se uporablja za prikaz vnesenih vrednosti.
  • Nazadnje, ' rl.zapri ()« zapre zgoraj ustvarjeni vmesnik.

Izhod

Začni ' kazalo .js« tako, da izvedete podani ukaz:

indeks vozlišča. js

Naslednji izhod prikazuje vmesnik readline, ki sprejme uporabniški vnos iz ukazne vrstice in nato prikaže vneseno vrednost kot standardni izhod:

2. način: Sprejemanje vnosa iz ukazne vrstice z uporabo modula »readline-sync«

' readline-sinhronizacija ” je modul tretje osebe, ki sinhrono pridobiva informacije, povezane s trdo kodiranimi vprašanji, in shranjuje njihove ustrezne odgovore za prihodnje operacije. Deluje kot komunikacija med odjemalcem in strežnikom iz ukazne vrstice.

Glavna razlika med asinhronimi in sinhronimi moduli je, da » asinhroni ” blokira izvajanje izvorne kode, dokler njena določena naloga ni izvedena, medtem ko sinhroni moduli izvajajo kodo vrstico za vrstico na zaporedni način.

Namestite modul »readline-sync«.

The “readline-sinhronizacija” modul ni vgrajen modul, zato ga je treba namestiti ročno z izvedbo spodnjega ukaza:

npm namestite readline - sinhronizacija

Izhod kaže, da je bil modul readline-sync dodan trenutnemu projektu Node.js:

Zdaj uporabite » readline-sinhronizacija ” praktično tako, da sledite podanemu delčku kode:

je bil readlineSync = zahtevati ( 'readline-sync' ) ;
je bil empName = readlineSync. vprašanje ( 'Ime zaposlenega: ' ) ;
je bil jd = readlineSync. vprašanje ( 'Opis dela: ' ) ;
je bil podjetje = readlineSync. vprašanje ( 'Podjetje:' , {
} ) ;
konzola. dnevnik ( empName + 'deluje kot' + jd + 'v' + podjetje ) ;

Razlaga zgornje kode je naslednja:

  • Prvič, ' readline-sinhronizacija ” je modul uvožen znotraj datoteke in njegov objekt shranjen v novi spremenljivki “ readlineSync ”.
  • Nato se poizvedba zastavi s pomočjo » vprašanje ()« tako, da jo navedete kot argument.
  • Enak postopek se uporablja za zastavljanje naslednjih vprašanj.
  • Po tem je ' console.log ()« se uporablja za prikaz vnesenih vrednosti skupaj z nizom v narekovajih.

Izhod

Izvedite ' kazalo .js' datoteka:

indeks vozlišča. js

Izhod kaže, da je bil vnos uporabnikov sinhroniziran in prikazan z uporabo ' readline-sinhronizacija ” modul:

3. način: Sprejmite vnos iz ukazne vrstice z uporabo modula »prompt«.

' poziv ” je asinhroni modul, ki ustvari pozivno funkcijo za shranjevanje uporabniškega vnosa kot vrednosti spremenljivke in ga nato pridobi kot rezultat izhoda. Ni mu treba izrecno konfigurirati berljivega in zapisljivega toka, zato je v primerjavi z ' readline ” modul.

Namestite modul »prompt«.

' poziv ” je tudi modul tretje osebe, ki ga je mogoče enostavno namestiti s pomočjo “ npm ' v to smer:

poziv za namestitev npm -- shraniti

V zgornjem ukazu je » – shraniti ' zastavica doda ' poziv ' modul v ' package.json ' mapa.

Lahko se analizira, da je ' poziv ” je bil dodan trenutnemu projektu Node.js:

Zdaj uporabite nameščeno » poziv ” praktično s pomočjo naslednjega delčka kode:

konst poziv = zahtevati ( 'prompt' )
poziv. začetek ( )
poziv. dobiti ( [ 'ime avtorja' , 'Kategorija' ] , ( napaka , rezultat ) => {
če ( napaka ) {
metati napaka

} drugače {
konzola. dnevnik ( `$ { rezultat. Ime avtorja } deluje na $ { rezultat. Kategorija } ` )

}
} )

V zgoraj navedenem kodnem bloku:

  • ' zahtevati ()' metoda uvozi ' poziv ” v projekt.
  • ' začetek ()« zažene poziv.
  • ' dobiti ()« sprejme vnos od uporabnika prek ukazne vrstice. Določa imena lastnosti in funkcijo puščice za povratni klic kot prvi in ​​drugi parameter.
  • Funkcija povratnega klica z ' napaka « in » rezultat ' parametrov definira ' če potem ” izjava.
  • Če se pojavi kakršna koli napaka, se prikaže » če » bo povzročil to napako, sicer bo » drugače ” blok prikaže vrednosti podanih lastnosti kot izhod.

Izhod

Zaženite ' kazalo .js' datoteka:

indeks vozlišča. js

Naslednji izhod vzame uporabniški vnos na podlagi navedenih lastnosti in nato pridobi njihove vrednosti kot izhod:

4. način: Sprejmite vnos iz ukazne vrstice z uporabo modula »inquirer«.

V Node.js je » spraševalec ” je preprost način za sprejemanje vnosa iz ukazne vrstice. Na voljo je z več uporabnimi metodami za sprejemanje vnosa od uporabnikov in nato vrnitev izhoda z uporabo ' odgovor »predmet in ». potem ()« vgrajena metoda.

Uporaben je za zastavljanje različnih vrst vprašanj uporabnika prek ukazne vrstice, kot so seznam, možnosti, vnos, potrditvena polja in še veliko več. Zagotavlja priročen način za interaktivnost vmesnika ukazne vrstice za opravila, ki temeljijo na poizvedbah.

Sledite podrobnemu vodniku na ' Vnesite vnos iz ukazne vrstice z Node.js Inquirer ” za praktično predstavitev.

Nasvet: Kako posredovati argumente iz ukazne vrstice v vozlišču?

Uporabnik lahko posreduje argumente tudi iz ukazne vrstice. V ta namen je ' proces.argv ” premoženje je mogoče uporabiti. ' argv « je vgrajena lastnost modula »process«, ki se uporablja za posredovanje argumentov iz ukazne vrstice med izvajanjem aplikacije Node.js z uporabo » vozlišče ” ukaz.

Sledite podrobnemu vodniku na ' Prenesite argumente iz ukazne vrstice v Node.js ” za praktično predstavitev.

To je vse o sprejemanju vnosa iz ukazne vrstice v Node.js.

Zaključek

Če želite sprejeti vnos iz ukazne vrstice, uporabite asinhroni ' readline «, ali sinhrono » readline-sinhronizacija ” modul. Poleg tega se lahko izvaja tudi prek » poziv ' ali ' spraševalec ” modul. Razen za ' redline-sinhronizacija ”, so vsi preostali moduli asinhroni. Ta zapis je obravnaval vse možne metode za sprejemanje vnosa iz ukazne vrstice v Node.js.