Kuidas aktsepteerida Node.js-i käsurealt sisendit?

Kuidas Aktsepteerida Node Js I Kasurealt Sisendit



Node.js on tuntud avatud lähtekoodiga tasuta JavaScripti käituskeskkond, mis võimaldab kasutajatel käivitada JavaScripti koodi failist või otse käsurealt. JavaScripti koodi käivitamine failist nõuab välist '. js ” failikäsk, samal ajal kui käsurida käivitab JavaScripti koodi otse ridade kaupa.

Mõnikord peab kasutaja teabe konfigureerima, kui käivitab rakenduse Node.js käsurealt ' sõlm ”. Sellises olukorras peab kasutaja edastama selle teabe otse täitmiskäsuga sisendiks, selle asemel, et seda sisestada. js ” faili.







Selles kirjutises käsitletakse kõiki võimalikke meetodeid Node.js-i käsurealt sisendi vastuvõtmiseks.



Kuidas aktsepteerida Node.js-i käsurealt sisendit?

Node.js pakub käsurealt sisendi vastuvõtmiseks järgmisi mooduleid:



Alustame ' readline ” moodul.





Eeltingimused : Enne mis tahes meetodi praktilise rakendamise juurde asumist looge esmalt '. js ” mis tahes nimega faili ja kirjutage sellele kogu lähtekood. Siin oleme loonud ' indeks .js” faili.

1. meetod: aktsepteerige käsurealt sisendit mooduli 'readline' abil

' readline ” moodul loob liidese kasutaja sisendi lugemiseks loetavast voost ja selle vastuse tagastamiseks sellest tuleneva väljundina. See on sisseehitatud moodul, nii et kasutaja saab importida selle otse Node.js rakendusse ilma seda installimata kasutades ' npm ”.



Selle stsenaariumi korral kasutatakse seda käsurealt sisendi võtmiseks ja seejärel väljundekraanile printimiseks. Siin on selle praktiline rakendamine:

konst readline = nõuda ( 'readline' )
konst rl = readline. loo liides ( {
sisend : protsessi. stdin ,
väljund : protsessi. stdout
} )
rl. küsimus ( `Parim platvorm jaoks tehniline sisu ? ` , veebisait => {
rl. küsimus ( `Millist kategooriat soovite uurida ? ` , kategooria => {
konsool. logi ( `Veebisait : $ { veebisait } , Kategooria : $ { kategooria } ` )
rl. Sulge ( )
} )
} )

Ülaltoodud koodiridade kirjeldus on järgmine:

  • Esiteks, ' nõuda ()” meetod impordib readline ” moodul praeguses Node.js projektis.
  • Järgmiseks ' loo liides ()' meetod täpsustab ' sisend' ja 'väljund ” voogestub objektina. ' sisend ' voog kasutab ' protsess.stdin ” atribuut kasutajalt sisendi võtmiseks.
  • ' väljund ' voog kasutab ' protsess.stdout ” atribuut sisendvoo lugemiseks ja selle printimiseks antud sisendvoo standardväljundina.
  • Pärast seda ' rl.küsimus ()” meetod võtab kasutajalt sisendi. See edastab küsimuse esimesena ja tagasihelistamise funktsiooni teise argumendina. Antud tagasihelistamise noolefunktsioon hangib kasutaja sisestatud väärtused.
  • Antud ' veebisait ', ja ' kategooria ' tagasihelistamisnoole funktsioon, ' console.log ()” meetodit kasutatakse sisestatud väärtuste kuvamiseks.
  • Lõpuks, ' rl.sulge ()” meetod sulgeb ülaltoodud liidese.

Väljund

Käivitage ' indeks .js” faili, käivitades antud käsu:

sõlme indeks. js

Järgmine väljund näitab lugemisrea liidest, mis võtab käsurealt kasutaja sisendi ja kuvab seejärel sisestatud väärtuse standardväljundina:

2. meetod: aktsepteerige käsurealt sisendit, kasutades moodulit 'readline-sünkroonimine'

' readline-sünkroonimine ” on kolmanda osapoole moodul, mis hangib sünkroonselt kõvakodeeritud küsimustega seotud teavet ja salvestab neile vastavad vastused tulevaste toimingute jaoks. See toimib kliendi ja serveri vahelise suhtlusena käsurealt.

Peamine erinevus asünkroonsete ja sünkroonsete moodulite vahel on see, et ' asünkroonne ” blokeerib lähtekoodi täitmise seni, kuni selle määratud ülesannet ei täideta, samas kui sünkroonmoodulid täidavad koodi rida-realt järjestikku.

Installige 'readline-sünkroonimise' moodul

The 'Readline-Sync' moodul ei ole sisseehitatud moodul, seega tuleb see installida käsitsi, käivitades alloleva käsu:

npm install readline - sünkroonimine

Väljund näitab, et praegusesse Node.js projekti on lisatud readline-sünkroonimise moodul:

Nüüd kasutage ' readline-sünkroonimine ” moodul praktiliselt, järgides antud koodijuppi:

oli readlineSync = nõuda ( 'readline-sync' ) ;
oli empName = readlineSync. küsimus ( 'Töötaja nimi:' ) ;
oli jd = readlineSync. küsimus ( 'Töö kirjeldus: ' ) ;
oli ettevõte = readlineSync. küsimus ( 'Ettevõte:' , {
} ) ;
konsool. logi ( empName + 'töötab' + jd + 'sisse' + ettevõte ) ;

Ülaltoodud koodi selgitus on järgmine:

  • Esiteks, ' readline-sünkroonimine ' moodul imporditakse faili sisse ja selle objekt salvestatakse uude muutujasse ' readlineSync ”.
  • Järgmisena esitatakse päring ' küsimus ()” meetodit, määrates selle argumendiks.
  • Sama protseduuri kasutatakse ka järgmiste küsimuste esitamisel.
  • Pärast seda ' console.log ()” meetodit kasutatakse sisestatud väärtuste kuvamiseks koos jutumärgiga stringiga.

Väljund

Käivitage ' indeks js” fail:

sõlme indeks. js

Väljund näitab, et sünkroonsel viisil on kasutajate sisend võetud ja kuvatud ' readline-sünkroonimine ” moodul:

3. meetod: Aktsepteerige käsurealt sisend, kasutades 'prompt' moodulit

' viip ” on asünkroonne moodul, mis loob viipafunktsiooni, et salvestada kasutaja sisend muutuja väärtusena ja seejärel hankida see saadud väljundina. See ei pea loetavat ja kirjutatavat voogu selgesõnaliselt konfigureerima, mistõttu on seda üsna lihtne kasutada võrreldes ' readline ” moodul.

Installige 'prompt' moodul

' viip ” on ka kolmanda osapoole moodul, mida saab hõlpsasti installida npm ' sellel viisil:

npm installiviipa -- salvestada

Ülaltoodud käsus on ' - salvestada ' lipp lisab ' viip ' mooduli ' package.json ” faili.

Võib analüüsida, et ' viip ” on lisatud praegusesse Node.js projekti:

Nüüd kasutage installitud ' viip ” moodulit praktiliselt järgmise koodilõigu abil:

konst viip = nõuda ( 'viipa' )
viip. alustada ( )
viip. saada ( [ 'autori nimi' , 'Kategooria' ] , ( eks , tulemus ) => {
kui ( eks ) {
viskama eks

} muidu {
konsool. logi ( `$ { tulemus. autorinimi } töötab $ { tulemus. Kategooria } ` )

}
} )

Ülaltoodud koodiplokis:

  • ' nõuda ()” meetod impordib viip ” moodulit projekti.
  • ' alustada ()” meetod käivitab viipa.
  • ' saada ()” meetod võtab kasutajalt käsurea kaudu sisendi. See määrab esimese ja teise parameetrina atribuutide nimed ja tagasihelistamisnoole funktsiooni.
  • Tagasihelistamise funktsioon koos ' eks ” ja „ tulemus ' parameetrid määratlevad ' kui-muidu ” avaldus.
  • Kui ilmneb mis tahes tüüpi tõrge, siis ' kui ' blokk annab selle vea, vastasel juhul ' muidu ” plokk kuvab väljundina määratud omaduste väärtused.

Väljund

Käivitage ' indeks js” fail:

sõlme indeks. js

Järgmine väljund võtab määratud omaduste põhjal kasutaja sisendi ja hangib seejärel nende väärtused väljundina:

4. meetod: nõustuge käsurealt päringu mooduli abil sisendiga

Programmis Node.js on ' küsija ” on lihtne viis käsurealt sisendi saamiseks. Kaasas on mitu kasulikku meetodit kasutajate sisendi saamiseks ja seejärel väljundi tagastamiseks, kasutades ' vastama ” objekt ja „. siis ()” sisseehitatud meetod.

See on kasulik, kui küsite kasutajalt käsurea kaudu erinevat tüüpi küsimusi, nagu loend, suvandid, sisend, märkeruudud ja palju muud. See pakub mugavat viisi käsurea liidese interaktiivseks muutmiseks päringupõhiste toimingute jaoks.

Järgige üksikasjalikku juhendit ' Võtke käsurealt sisend, kasutades Node.js Inquirerit ” praktiliseks demonstreerimiseks.

Näpunäide: kuidas edastada argumente Node'i käsurealt?

Argumente saab kasutaja edastada ka käsurealt. Sel eesmärgil on ' protsess.argv ” kinnisvara saab kasutada. ' argv ” on mooduli „process” sisseehitatud atribuut, mida kasutatakse argumentide edastamiseks käsurealt, kui käitate rakendust Node.js, kasutades „ sõlm ” käsk.

Järgige üksikasjalikku juhendit ' Argumentide edastamine Node.js-i käsurealt ” praktiliseks demonstreerimiseks.

See kõik puudutab Node.js-i käsurealt sisendi vastuvõtmist.

Järeldus

Käsurea sisendi vastuvõtmiseks kasutage asünkroonset ' readline ' või sünkroonne ' readline-sünkroonimine ” moodul. Lisaks saab seda teha ka ' viip ” või „ küsija ” moodul. Välja arvatud ' redline-sünkroonimine ” moodul, kõik ülejäänud moodulid on asünkroonsed. Selles kirjutises on käsitletud kõiki võimalikke meetodeid Node.js-i käsurealt sisendi vastuvõtmiseks.