Hvordan accepterer man input fra kommandolinjen i Node.js?

Hvordan Accepterer Man Input Fra Kommandolinjen I Node Js



Node.js er et velkendt open source gratis JavaScript-runtime-miljø, der giver brugerne mulighed for at udføre JavaScript-koden fra en fil eller direkte fra kommandolinjen. Kørsel af en JavaScript-kode fra en fil kræver en ekstern '. js ” filkommando, mens kommandolinjen udfører JavaScript-koden direkte linje for linje.

Nogle gange skal brugeren konfigurere oplysningerne, mens han starter Node.js-applikationen fra kommandolinjen via ' node ”. I en sådan situation skal brugeren sende denne information direkte som input med udførelseskommandoen i stedet for at skrive den ind i '. js ' fil.







Denne opskrivning vil diskutere alle mulige metoder til at acceptere input fra kommandolinjen i Node.js.



Hvordan accepterer man input fra kommandolinjen i Node.js?

Node.js tilbyder følgende moduler til at acceptere input fra kommandolinjen:



Lad os starte med ' læselinje ” modul.





Forudsætninger : Før du går videre til den praktiske implementering af en metode, skal du først oprette en '. js ” fil af et hvilket som helst navn og skriv al kildekoden til den. Her har vi lavet en ' indeks .js' fil.

Metode 1: Accepter input fra kommandolinjen ved hjælp af 'readline'-modulet

Det ' læselinje ”-modulet opretter en grænseflade til at læse brugerinput fra den læsbare strøm og returnere dens respons som det resulterende output. Det er et indbygget modul, så brugeren kan importere det direkte til Node.js-applikationen uden at installere det ved hjælp af ' npm ”.



I dette scenarie bruges det til at tage input fra kommandolinjen og derefter udskrive det på outputskærmen. Her er dens praktiske implementering:

konst læselinje = kræve ( 'læselinje' )
konst rl = læselinje. skabe grænseflade ( {
input : behandle. stdin ,
produktion : behandle. stdout
} )
rl. spørgsmål ( `Bedste platform til teknisk indhold ? ` , internet side => {
rl. spørgsmål ( `Hvilken kategori du gerne vil udforske ? ` , kategori => {
konsol. log ( `Hjemmeside : $ { internet side } , Kategori : $ { kategori } ` )
rl. tæt ( )
} )
} )

Beskrivelsen af ​​ovenstående kodelinjer er som følger:

  • For det første er ' kræve ()'-metoden importerer ' læselinje ” modul i det aktuelle Node.js-projekt.
  • Dernæst ' skabe grænseflade ()'-metoden angiver ' input' og 'output ” strømmer som et objekt. Det ' input ' stream bruger ' process.stdin ” egenskab til at modtage input fra brugeren.
  • Det ' produktion ' stream bruger ' proces.stdout ” egenskab til at læse inputstrømmen og udskrive den som standardoutput af den givne inputstrøm.
  • Derefter vil ' rl.spørgsmål ()”-metoden tager input fra brugeren. Den sender spørgsmålet som det første og tilbagekaldsfunktionen som sit andet argument. Den givne tilbagekaldspilfunktion henter de brugerindtastede værdier.
  • I definitionen af ​​det givne ' internet side ', og ' kategori ' tilbagekaldspilsfunktion, ' console.log ()” metoden bruges til at vise de indtastede værdier.
  • Til sidst, ' rl.tæt ()”-metoden lukker den ovenfor oprettede grænseflade.

Produktion

Start ' indeks .js' fil ved at udføre den angivne kommando:

node indeks. js

Følgende output viser en readline-grænseflade, der tager brugerinput fra kommandolinjen og derefter viser den indtastede værdi som standardoutput:

Metode 2: Accepter input fra kommandolinjen ved hjælp af 'readline-sync'-modulet

Det ' readline-synkronisering ” er tredjepartsmodulet, der synkront henter informationen relateret til hårdkodede spørgsmål og gemmer deres tilsvarende svar til fremtidige operationer. Det fungerer som en kommunikation mellem klienten og serveren fra kommandolinjen.

Den største forskel mellem asynkrone og synkrone moduler er, at ' asynkron ” blokerer udførelsen af ​​kildekoden, indtil dens specificerede opgave ikke udføres, mens de synkrone moduler udfører koden linje for linje på en sekventiel måde.

Installer 'readline-sync' modul

Det 'læselinje-synkronisering' modul er ikke et indbygget modul, så det skal installeres manuelt ved at udføre nedenstående kommando:

npm installere readline - synkronisere

Outputtet viser, at readline-sync-modulet er blevet tilføjet til det aktuelle Node.js-projekt:

Brug nu ' readline-synkronisering ”-modul praktisk talt ved at følge det givne kodestykke:

var readlineSync = kræve ( 'læselinje-synkronisering' ) ;
var empName = readlineSync. spørgsmål ( 'Ansattes navn: ' ) ;
var jd = readlineSync. spørgsmål ( 'Job beskrivelse: ' ) ;
var Selskab = readlineSync. spørgsmål ( 'Selskab: ' , {
} ) ;
konsol. log ( empName + 'fungerer som' + jd + 'i' + Selskab ) ;

Forklaringen af ​​ovenstående kode er som følger:

  • For det første ' readline-synkronisering ' modul importeres inde i filen og dets objekt gemmes i en ny variabel ' readlineSync ”.
  • Dernæst stilles forespørgslen ved hjælp af ' spørgsmål ()'-metoden ved at angive den som argumentet.
  • Samme procedure bruges til at stille de næste spørgsmål.
  • Derefter vil ' console.log ()' metoden bruges til at vise de indtastede værdier sammen med den citerede streng.

Produktion

Udfør ' indeks .js' fil:

node indeks. js

Outputtet viser, at input fra brugere på en synkron måde er blevet taget og vist ved hjælp af ' readline-synkronisering ' modul:

Metode 3: Accepter input fra kommandolinjen ved hjælp af 'prompt'-modulet

Det ' hurtig ” er et asynkront modul, der opretter en promptfunktion til at gemme brugerinputtet som variablens værdi og derefter hente det som det resulterende output. Det behøver ikke at konfigurere den læsbare og skrivbare stream eksplicit, derfor er den ret nem at bruge sammenlignet med ' læselinje ” modul.

Installer 'prompt'-modulet

Det ' hurtig ” er også et tredjepartsmodul, der nemt kan installeres ved hjælp af ” npm 'på denne måde:

npm installationsprompt -- Gemme

I ovenstående kommando, ' -Gemme ' flag tilføjer ' hurtig ' modul til ' package.json ' fil.

Det kan analyseres, at ' hurtig ” er blevet tilføjet til det aktuelle Node.js-projekt:

Brug nu den installerede ' hurtig ”-modul praktisk talt ved hjælp af følgende kodestykke:

konst hurtig = kræve ( 'hurtig' )
hurtig. Start ( )
hurtig. ( [ 'authorName' , 'Kategori' ] , ( fejl , resultat ) => {
hvis ( fejl ) {
kaste fejl

} andet {
konsol. log ( `$ { resultat. forfatternavn } virker på $ { resultat. Kategori } ` )

}
} )

I den ovennævnte kodeblok:

  • Det ' kræve ()'-metoden importerer ' hurtig ” modul ind i projektet.
  • Det ' Start ()”-metoden starter prompten.
  • Det ' ()”-metoden tager input fra brugeren via kommandolinjen. Den specificerer egenskabsnavnene og tilbagekaldspilfunktionen som første og anden parameter.
  • Tilbagekaldsfunktionen med ' fejl ' og ' resultat '-parametre definerer en ' hvis ellers ' udmelding.
  • Hvis der opstår nogen form for fejl, så ' hvis ' blok vil kaste den fejl ellers ' andet ” blok vil vise værdierne for de specificerede egenskaber som et output.

Produktion

Kør ' indeks .js' fil:

node indeks. js

Følgende output tager brugerinput baseret på de angivne egenskaber og henter derefter deres værdier som et output:

Metode 4: Accepter input fra kommandolinjen ved hjælp af 'forespørger'-modulet

I Node.js er ' spørger ” er en nem måde at tage input fra kommandolinjen. Det kommer med flere nyttige metoder til at tage input fra brugere og derefter returnere outputtet ved hjælp af ' svar ' objekt og '. derefter ()” indbygget metode.

Det er nyttigt til at stille forskellige typer spørgsmål fra brugeren gennem kommandolinjen, såsom liste, muligheder, input, afkrydsningsfelter og meget mere. Det giver en bekvem måde at gøre kommandolinjegrænsefladen interaktiv til forespørgselsbaserede opgaver.

Følg den detaljerede vejledning på ' Tag input fra kommandolinjen ved hjælp af Node.js Inquirer ” til praktisk demonstration.

Tip: Hvordan sender jeg argumenter fra kommandolinjen i node?

Brugeren kan også sende argumenter fra kommandolinjen. Til dette formål er ' process.argv ” ejendom kan bruges. Det ' argv ' er den indbyggede egenskab for 'proces'-modulet, der bruges til at sende argumenterne fra kommandolinjen, mens du kører Node.js-applikationen ved hjælp af ' node ” kommando.

Følg den detaljerede vejledning på ' Send argumenter fra kommandolinjen i Node.js ” til praktisk demonstration.

Det handler om at acceptere input fra kommandolinjen i Node.js.

Konklusion

For at acceptere input fra kommandolinjen skal du bruge den asynkrone ' læselinje ', eller den synkrone ' readline-synkronisering ” modul. Desuden kan det også udføres gennem ' hurtig ' eller den ' spørger ” modul. Bortset fra ' redline-synkronisering ”-modul, er alle de resterende moduler asynkrone. Denne opskrivning har diskuteret alle mulige metoder til at acceptere input fra kommandolinjen i Node.js.