Hvordan læser man fortløbende input med Node.js Readline Module?

Hvordan Laeser Man Fortlobende Input Med Node Js Readline Module



Det ' læselinje ” Node.js-modulet er ideelt at bruge i scenarier, hvor der skal tages mere end ét på hinanden følgende input fra slutbrugeren. Dette modul omslutter standardoutput og -input, hvilket hjælper med at læse inputstrømmen linje for linje uden at springe modtagne data over. Med ankomsten af ​​' læselinje ” modul, bliver proceduren for at hente data i realtid meget nemmere og hurtigere.

Denne opskrivning forklarer proceduren til at læse de på hinanden følgende inputs med nodejs readline-modul.

Hvordan læser man fortløbende input med Node.js Readline Module?

De fortløbende input er den, der tager og gemmer svarene til flere spørgsmål på samme tid på en sekventiel måde. Disse på hinanden følgende forespørgsler bliver for det meste stillet, mens du deltager i nogle kurser eller på tidspunktet for bekræftelse. Et par eksempler er angivet nedenfor for implementering af læsning af fortløbende input ved hjælp af Node.js readline-modulet.







Eksempel 1: Læsning af fortløbende input ved hjælp af Readline-modulet og arrays

I dette eksempel tages og læses de fortløbende input ved hjælp af ' læselinje ” modul. Indgangene gemmes i arrayet, hvorfra de vises på konsollen:



konst læselinje = kræve ( 'læselinje' ) ;

konst readline Interface = læselinje. skabe grænseflade ( {

input : behandle. stdin ,

produktion : behandle. stdout

} )

konst req0 = 'Kan! Jeg kender dit kaldenavn?' ;

konst req1 = 'Hvad er din hobby' ;

konst krav 2 = 'Hvad elsker du at lytte' ;

konst krav 3 = 'Kan! Jeg kender din yndlingsret?' ;

konst krav 4 = 'Hvor bor du?' ;

konst req5 = 'Hvad er din yndlingsfarve' ;

konst krav 6 = 'Hvem er din bedste ven' ;

konst reqArr = [ req0, req1, req2, req3, req4, req5, req6 ] ;

lad res = '' ;

konst reqData = x => {

hvis ( x < reqArr. længde ) {

readline Interface. spørgsmål ( reqArr [ x ] , ( reqResponse ) => {

res += ' \n ' + reqResponse ;

reqData ( x + 1 ) ;

} ) ;

} andet {

konsol. log ( 'Tak til deler med mig ! $ { res } ` ) ;

readline Interface. tæt ( ) ;

}

} ;

reqData ( 0 ) ;

Beskrivelsen af ​​koden brugt i ovenstående kodestykke er angivet nedenfor:



  • Start med at importere ' læselinje ' modul og gem dets objekt i en variabel med navnet ' læselinje ”.
  • Opret derefter en grænseflade med navnet ' readline Interface ' for ' læselinje '-objekt, der omslutter standardinput- og outputprocessen ved hjælp af ' createInterface() ” metode. Den forbinder også enhver anmodning og svar med en enkelt input-læsbar og output-skrivbar stream ved hjælp af ' behandle ” ejendom.
  • Opret derefter syv ' konst ” skriv variabler for at gemme nogle anmodninger eller spørgsmål, der skal stilles fortløbende. Gem disse konstanter i det enkelte array med navnet ' reqArr ”.
  • Opret en ny tom variabel ' res ', definere en pilefunktion ved navn ' reqData ' og videregive den enkelte parameter af ' x ”.
  • Inde i denne funktion skal du bruge ' hvis '-sætning, der kontrollerer, om værdien af ​​den angivne parameter er mindre end længden af ​​' reqArr ' eller ikke.
  • I tilfælde af sand, ' spørgsmål() ”-metoden anvendes på grænsefladen, og den viser hver anmodning fra arrayet over output sekventielt. Derefter sender den deres tilsvarende angivne værdier som et argument.
  • Disse argumenter er gemt i det allerede oprettede array ' res ”.
  • Når alle anmodningerne er vist sekventielt over konsollen, er tilstanden ' hvis ' udsagn bliver falsk og i ' andet ' del, ' res ”-array bliver vist over konsollen.
  • Endelig bliver readline-grænsefladen også lukket ved at påkalde ' tæt() ” metode. Påkald også ' reqData() '-funktion og videregive en begyndelsesværdi på ' 0 ” for at starte spørgsmålet fra toppen eller fra det første spørgsmål, der er tilgængeligt i arrayet.

Udfør nu denne indeholdende fil ved at indtaste ' node ' søgeord bag ' filnavn ” på terminalen:





node skrive

Outputtet viser, at programmet har læst de på hinanden følgende input og returneret dem alle på én gang:

Eksempel 2: Læsning af fortløbende input ved hjælp af Readline-modulet og den rekursive funktion

I metoden anvendes den rekursive tilgang med ' læselinje ” Node.js-modul til at læse de fortløbende input fra brugeren på inputstrømmen:



konst Læs = kræve ( 'læselinje' ) ;
konst readline Interface = Læs. skabe grænseflade ( {
input : behandle. stdin ,
produktion : behandle. stdout
} )
 var reqArr = [ ]
funktion reqData ( x ) {
hvis ( x > 3 )
{
var gennemsnittet = 0
til ( j i reqArr )
{
gennemsnit += Nummer ( reqArr [ j ] )
}
konsol. log ( gennemsnit / 3 ) ;
}
andet
{
readline Interface. spørgsmål ( 'Gå ind i ' + x + 'nummer ud af 3:' ,    funktion ( reqResponse ) {
reqArr. skubbe ( reqResponse )
reqData ( x + 1 )
} )
}
}

reqData ( 1 ) ;

Forklaringen på ovenstående kode er beskrevet nedenfor i form af punktopstillinger:

  • Først skal du importere ' læselinje ' i en nyoprettet ' skrive.js ' fil og gem metodeobjektet i en ' Læs ' variabel. Opret en grænseflade, der gemmer ' læselinje '-grænseflade, som er oprettet via ' createInterface() ” metode.
  • Opret nu et tomt array med navnet ' reqArr ' og definere ' reqData() ' funktion, som også accepterer en enkelt parameter med navnet ' x ”.
  • Funktionen kontrollerer først, om den angivne værdi er større end ' 3 ' eller ikke. I tilfælde af sand, de hentede værdier, der kommer i ' x variabel gemmes i et array og tilføjes til den enkelte variabel med navnet ' gennemsnit ”.
  • Derefter vil ' gennemsnit variabel divideres med 3 ' for at finde gennemsnittet, da længden af ​​det maksimalt tilladte tal er ' 3 ” og resultatet vises på konsollen.
  • I den anden del er ' spørgsmål() ' metode er knyttet til grænsefladen ' readlineInerface ”. Denne metode viser meddelelsen over konsollen og definerer en anonym funktion.
  • Funktionen accepterer brugerinputdata og tilføjer disse data til arrayet ' reqArr ”. Det opdaterer også værdien af ​​' x ” hver gang og sender den opdaterede værdi til ” reqData() ' funktion. Dette vil sikre, at brugeren kun indtaster værdier mindre end tre startende fra ' 0 ”. Til sidst påberåber du ' reqData() ” funktion for at starte udførelsesprocessen.

Udfør nu dette med ' skrive.js ' fil ved at indtaste ' node ' søgeord bag ' filnavn ” på terminalen:

node skrive

Outputtet bekræfter, at fortløbende input læses, og deres gennemsnit vises over konsollen ved hjælp af kombinationen af ​​rekursiv tilgang og readline-modul:

Denne vejledning forklarer proceduren til at læse fortløbende input med Node.js readline-modulet.

Konklusion

For at læse de fortløbende input med Node.js readline-modulet skal du først importere dette modul i en arbejdsfil og oprette en grænseflade ved hjælp af ' createInterface() ” metode. Denne grænseflade kalder på ' spørgsmål() ” metode. Den sender anmodninger til brugeren fortløbende og sender de tilsvarende svar på hver anmodning til tilbagekaldsfunktionen for at anvende nogle operationer i overensstemmelse med kravene. Du har lært processen med at læse fortløbende input ved hjælp af readline-modulet.