Kaip priimti įvestį iš komandų eilutės Node.js?

Kaip Priimti Ivesti Is Komandu Eilutes Node Js



Node.js yra gerai žinoma atvirojo kodo nemokama JavaScript vykdymo aplinka, leidžianti vartotojams vykdyti JavaScript kodą iš failo arba tiesiai iš komandinės eilutės. Norint paleisti „JavaScript“ kodą iš failo, reikalingas išorinis „. js ” failo komandą, o komandų eilutė vykdo JavaScript kodą tiesiogiai eilutė po eilutės.

Kartais vartotojui reikia sukonfigūruoti informaciją paleidžiant Node.js programą iš komandinės eilutės per „ mazgas “. Esant tokiai situacijai, vartotojas turi perduoti šią informaciją tiesiogiai kaip įvestį su vykdymo komanda, o ne įrašyti ją į „. js “ failą.







Šiame įraše bus aptariami visi galimi būdai, kaip priimti įvestį iš komandinės eilutės Node.js.



Kaip priimti įvestį iš komandų eilutės Node.js?

Node.js siūlo šiuos modulius priimti įvestį iš komandinės eilutės:



Pradėkime nuo „ skaitymo linija “ modulis.





Būtinos sąlygos : Prieš pereidami prie praktinio bet kokio metodo įgyvendinimo, pirmiausia sukurkite „. js “ bet kokio pavadinimo failą ir į jį įrašykite visą šaltinio kodą. Čia mes sukūrėme „ indeksas .js“ failą.

1 būdas: priimkite įvestį iš komandinės eilutės naudodami „readline“ modulį

skaitymo linija “ modulis sukuria sąsają, skirtą nuskaityti vartotojo įvestį iš skaitomo srauto ir grąžinti jos atsakymą kaip gautą išvestį. Tai yra įtaisytas modulis, todėl vartotojas gali importuoti jį tiesiai į Node.js programą, neįdiegdamas jo naudodamas ' npm “.



Pagal šį scenarijų jis naudojamas paimti įvestį iš komandinės eilutės ir išspausdinti ją išvesties ekrane. Štai jo praktinis įgyvendinimas:

konst skaitymo linija = reikalauti ( 'skaitytoji linija' )
konst rl = skaitymo linija. sukurti sąsają ( {
įvestis : procesas. stdin ,
išvestis : procesas. stdout
} )
rl. klausimas ( „Geriausia platforma dėl techninis turinys ? ` , Interneto svetainė => {
rl. klausimas ( „Kurią kategoriją norėtumėte ištirti ? ` , Kategorija => {
konsolė. žurnalas ( `Svetainė : $ { Interneto svetainė } , Kategorija : $ { Kategorija } ` )
rl. Uždaryti ( )
} )
} )

Aukščiau pateiktų kodo eilučių aprašymas yra toks:

  • Pirma, „ reikalauti ()“ metodas importuoja „ skaitymo linija “ modulis dabartiniame Node.js projekte.
  • Toliau „ sukurti sąsają ()“ metodas nurodo „ įvestis“ ir „išvestis “ srautai kaip objektas. „ įvestis ' srautas naudoja ' procesas.stdin “ ypatybę, skirtą įvesties iš vartotojo paėmimui.
  • išvestis ' srautas naudoja ' procesas.stdout ” savybę, skirtą įvesties srautui nuskaityti ir spausdinti kaip standartinę nurodyto įvesties srauto išvestį.
  • Po to „ rl.klausimas ()“ metodas paima vartotojo įvestį. Klausimas perduodamas kaip pirmasis, o atgalinio skambinimo funkcija – antrasis argumentas. Nurodyta atgalinio skambinimo rodyklės funkcija nuskaito vartotojo įvestas reikšmes.
  • Apibrėžiant pateiktą „ Interneto svetainė ', ir ' Kategorija “ atgalinio skambinimo rodyklės funkcija, „ console.log ()“ metodas naudojamas įvestoms reikšmėms rodyti.
  • Galiausiai „ rl.uždaryti ()“ metodas uždaro aukščiau sukurtą sąsają.

Išvestis

Pradėti „ indeksas .js“ failą vykdydami pateiktą komandą:

mazgo indeksas. js

Toliau pateiktame išvestyje rodoma skaitymo eilutės sąsaja, kuri paima vartotojo įvestį iš komandinės eilutės ir rodo įvestą reikšmę kaip standartinę išvestį:

2 būdas: priimkite įvestį iš komandinės eilutės naudodami modulį „readline-sync“

skaitymo linijos sinchronizavimas “ yra trečiosios šalies modulis, kuris sinchroniškai nuskaito informaciją, susijusią su užkoduotais klausimais, ir išsaugo atitinkamus atsakymus būsimoms operacijoms. Jis veikia kaip komunikacija tarp kliento ir serverio iš komandinės eilutės.

Pagrindinis skirtumas tarp asinchroninių ir sinchroninių modulių yra tas, kad asinchroninis “ blokuoja šaltinio kodo vykdymą tol, kol nebus atlikta jo nurodyta užduotis, o sinchroniniai moduliai kodą vykdo eilutę po eilutės nuosekliai.

Įdiekite „readline-sync“ modulį

The „Readline-Sync“ modulis nėra įmontuotas modulis, todėl jį reikia įdiegti rankiniu būdu, vykdant toliau pateiktą komandą:

npm įdiegti skaitymo liniją - sinchronizuoti

Išvestis rodo, kad readline-sync modulis buvo pridėtas prie dabartinio Node.js projekto:

Dabar naudokite „ skaitymo linijos sinchronizavimas “ modulį praktiškai vadovaudamiesi nurodytu kodo fragmentu:

buvo readlineSync = reikalauti ( 'readline-sync' ) ;
buvo empName = readlineSync. klausimas ( 'Darbuotojo vardas: ' ) ;
buvo jd = readlineSync. klausimas ( 'Darbo aprašymas: ' ) ;
buvo bendrovė = readlineSync. klausimas ( 'Bendrovė: ' , {
} ) ;
konsolė. žurnalas ( empName + 'veikia kaip' + jd + 'in' + bendrovė ) ;

Aukščiau pateikto kodo paaiškinimas yra toks:

  • Pirma, „ skaitymo linijos sinchronizavimas “ modulis importuojamas į failą ir jo objektas išsaugomas naujame kintamajame “ readlineSync “.
  • Tada užklausa pateikiama naudojant „ klausimas ()“ metodą nurodydami jį kaip argumentą.
  • Ta pati procedūra naudojama užduodant kitus klausimus.
  • Po to „ console.log ()“ metodas naudojamas įvestoms reikšmėms rodyti kartu su kabutine eilute.

Išvestis

Vykdykite ' indeksas .js“ failas:

mazgo indeksas. js

Išvestis rodo, kad sinchroniniu būdu vartotojų įvestis buvo paimta ir rodoma naudojant „ skaitymo linijos sinchronizavimas “ modulis:

3 būdas: priimkite įvestį iš komandinės eilutės naudodami „prompt“ modulį

paraginti “ yra asinchroninis modulis, sukuriantis raginimo funkciją, skirtą išsaugoti vartotojo įvestį kaip kintamojo reikšmę, o tada gauti ją kaip gautą išvestį. Nereikia aiškiai konfigūruoti skaitomo ir rašomo srauto, todėl jį gana lengva naudoti, palyginti su „ skaitymo linija “ modulis.

Įdiekite „prompt“ modulį

paraginti “ taip pat yra trečiosios šalies modulis, kurį galima lengvai įdiegti naudojant „ npm ' šiuo būdu:

npm diegimo raginimas -- sutaupyti

Aukščiau pateiktoje komandoje „ -sutaupyti “ vėliavėlė prideda „ paraginti “ modulį į “ package.json “ failą.

Galima analizuoti, kad „ paraginti “ buvo pridėtas prie dabartinio Node.js projekto:

Dabar naudokite įdiegtą ' paraginti “ modulį praktiškai naudojant šį kodo fragmentą:

konst paraginti = reikalauti ( 'pasakyti' )
paraginti. pradėti ( )
paraginti. gauti ( [ 'authorName' , 'Kategorija' ] , ( klysti , rezultatas ) => {
jeigu ( klysti ) {
mesti klysti

} Kitas {
konsolė. žurnalas ( `$ { rezultatas. autoriusVardas } dirba su $ { rezultatas. Kategorija } ` )

}
} )

Aukščiau nurodytame kodo bloke:

  • reikalauti ()“ metodas importuoja „ paraginti “ modulį į projektą.
  • pradėti ()“ metodas pradeda raginimą.
  • gauti ()“ metodas paima įvestį iš vartotojo per komandinę eilutę. Jame nurodomi ypatybių pavadinimai ir atgalinio skambinimo rodyklės funkcija kaip pirmasis ir antrasis parametrai.
  • Atgalinio skambinimo funkcija su „ klysti “ ir „ rezultatas “ parametrai apibrėžia „ jei-kitaip “ pareiškimas.
  • Jei įvyksta kokia nors klaida, tada „ jeigu “ blokas išmes tą klaidą, kitaip „ Kitas “ bloke kaip išvestis bus rodomos nurodytų savybių reikšmės.

Išvestis

Paleiskite „ indeksas .js“ failas:

mazgo indeksas. js

Ši išvestis paima vartotojo įvestį pagal nurodytas savybes ir nuskaito jų reikšmes kaip išvestį:

4 būdas: priimkite įvestį iš komandinės eilutės naudodami „klausiklio“ modulį

„Node.js“ klausytojas “ yra paprastas būdas paimti įvestį iš komandinės eilutės. Jame yra keletas naudingų metodų, kaip gauti vartotojų įvestį ir grąžinti išvestį naudojant „ atsakyti “ objektas ir „. tada ()“ integruotas metodas.

Tai naudinga užduodant įvairių tipų klausimus vartotojui per komandinę eilutę, pvz., sąrašą, parinktis, įvestį, žymimuosius laukelius ir daug daugiau. Tai patogus būdas komandų eilutės sąsają padaryti interaktyvia užklausomis pagrįstoms užduotims atlikti.

Vykdykite išsamų vadovą „ Paimkite įvestį iš komandinės eilutės naudodami Node.js Inquirer “ praktiniam demonstravimui.

Patarimas: kaip perduoti argumentus iš komandų eilutės mazge?

Vartotojas taip pat gali perduoti argumentus iš komandinės eilutės. Šiuo tikslu „ procesas.argv “ turtas gali būti naudojamas. „ argv “ yra integruota modulio „process“ ypatybė, kuri naudojama argumentams perduoti iš komandinės eilutės, kai vykdoma Node.js programa naudojant „ mazgas “ komanda.

Vykdykite išsamų vadovą „ Perduokite argumentus iš Node.js komandų eilutės “ praktiniam demonstravimui.

Tai viskas apie įvesties priėmimą iš komandinės eilutės Node.js.

Išvada

Norėdami priimti įvestį iš komandinės eilutės, naudokite asinchroninį ' skaitymo linija “ arba sinchroninis „ skaitymo linijos sinchronizavimas “ modulis. Be to, tai taip pat galima atlikti per „ paraginti ' arba ' klausytojas “ modulis. Išskyrus „ raudonos linijos sinchronizavimas “ modulis, visi likę moduliai yra asinchroniniai. Šiame įraše aptariami visi galimi būdai, kaip priimti įvestį iš komandinės eilutės Node.js.