Ovaj zapis objašnjava postupak čitanja uzastopnih ulaza s nodejs readline modulom.
Kako čitati uzastopne unose s Node.js Readline modulom?
Uzastopni ulazi su oni koji uzimaju i pohranjuju odgovore za više pitanja u isto vrijeme na uzastopni način. Ovi uzastopni upiti uglavnom se postavljaju prilikom pridruživanja nekim tečajevima ili tijekom verifikacije. U nastavku je navedeno nekoliko primjera za implementaciju čitanja uzastopnih unosa pomoću Node.js readline modula.
Primjer 1: Čitanje uzastopnih unosa pomoću Readline modula i nizova
U ovom primjeru, uzastopni unosi se uzimaju i čitaju pomoću ' linija za čitanje ” modul. Unosi se pohranjuju u polje odakle se prikazuju na konzoli:
konst linija za čitanje = zahtijevati ( 'readline' ) ;
konst readlineInterface = linija za čitanje. createInterface ( {
ulazni : postupak. stdin ,
izlaz : postupak. stdout
} )
konst req0 = 'Svibanj! Znam ti nadimak?' ;
konst req1 = 'Koji je tvoj hobi' ;
konst req2 = 'Što voliš slušati' ;
konst req3 = 'Svibanj! Znam tvoje omiljeno jelo?' ;
konst req4 = 'Gdje živiš?' ;
konst req5 = 'Koja je tvoja najdraža boja' ;
konst req6 = 'Tko je tvoj najbolji prijatelj' ;
konst reqArr = [ req0, req1, req2, req3, req4, req5, req6 ] ;
neka rez = '' ;
konst reqData = x => {
ako ( x < reqArr. duljina ) {
readlineInterface. pitanje ( reqArr [ x ] , ( reqResponse ) => {
res += ' \n ' + reqResponse ;
reqData ( x + 1 ) ;
} ) ;
} drugo {
konzola. log ( `Hvala za dijeli sa mnom ! $ { res } ` ) ;
readlineInterface. Zatvoriti ( ) ;
}
} ;
reqData ( 0 ) ;
Opis koda korištenog u gornjem isječku koda naveden je u nastavku:
- Započnite uvozom ' linija za čitanje ” modul i pohranjuje njegov objekt u varijablu pod nazivom “ linija za čitanje ”.
- Zatim stvorite sučelje pod nazivom ' readlineInterface ' za ' linija za čitanje ” objekt koji obavija standardni proces ulaza i izlaza koristeći “ createInterface() ” metoda. Također povezuje svaki zahtjev i odgovor s jednim ulazom čitljivim i izlaznim zapisljivim tokom koristeći ' postupak ” vlasništvo.
- Zatim stvorite sedam ' konst ” varijable tipa za pohranjivanje nekih zahtjeva ili pitanja koja treba postavljati uzastopno. Pohranite ove konstante u jedno polje pod nazivom ' reqArr ”.
- Napravite novu praznu varijablu ' res ', definirajte funkciju strelice pod nazivom ' reqData ” i proslijedi jedan parametar od „ x ”.
- Unutar ove funkcije upotrijebite ' ako ” naredba koja provjerava je li vrijednost navedenog parametra manja od duljine “ reqArr ' ili ne.
- U slučaju true, ' pitanje() ” metoda se primjenjuje na sučelje i prikazuje svaki zahtjev iz niza uzastopno preko izlaza. Zatim prosljeđuje njihove odgovarajuće navedene vrijednosti kao argument.
- Ovi argumenti su pohranjeni u već kreiranom polju ' res ”.
- Nakon što se svi zahtjevi uzastopno prikažu na konzoli, tada će biti ispunjen uvjet ' ako ' izjava postaje lažna i u ' drugo ' dio, ' res ” niz se prikazuje preko konzole.
- Konačno, readline sučelje također se zatvara pozivanjem ' Zatvoriti() ” metoda. Također, pozovite ' reqData() ' funkciju i proslijedite početnu vrijednost ' 0 ” za početak pitanja od vrha ili od prvog pitanja dostupnog u nizu.
Sada pokrenite ovu datoteku koja sadrži unosom ' čvor ' ključna riječ iza ' naziv datoteke ” na terminalu:
pisanje čvora
Izlaz pokazuje da je program pročitao uzastopne ulaze i vratio ih sve odjednom:
Primjer 2: Čitanje uzastopnih unosa pomoću Readline modula i rekurzivne funkcije
U metodi se koristi rekurzivni pristup s ' linija za čitanje ” Node.js modul za čitanje uzastopnih unosa korisnika na ulaznom toku:
konst čitati = zahtijevati ( 'readline' ) ;
konst readlineInterface = čitati. createInterface ( {
ulazni : postupak. stdin ,
izlaz : postupak. stdout
} )
bio je reqArr = [ ]
funkcija reqData ( x ) {
ako ( x > 3 )
{
var prosjek = 0
za ( j u reqArr )
{
prosjek += Broj ( reqArr [ j ] )
}
konzola. log ( prosjek / 3 ) ;
}
drugo
{
readlineInterface. pitanje ( 'Uđi ' + x + 'broj od 3:' , funkcija ( reqResponse ) {
reqArr. gurnuti ( reqResponse )
reqData ( x + 1 )
} )
}
}
reqData ( 1 ) ;
Objašnjenje gornjeg koda opisano je u nastavku u obliku grafičkih oznaka:
- Prvo uvezite ' linija za čitanje ” u novostvorenom “ pisati.js ” i pohranite objekt metode u “ čitati ” varijabla. Napravite sučelje koje pohranjuje ' linija za čitanje ' sučelje koje se stvara putem ' createInterface() ” metoda.
- Sada stvorite prazan niz pod nazivom ' reqArr ' i definirajte ' reqData() ' funkcija koja također prihvaća jedan parametar pod nazivom ' x ”.
- Funkcija prvo provjerava je li navedena vrijednost veća od ' 3 ' ili ne. U slučaju true, dohvaćene vrijednosti koje dolaze u ' x ” varijabla se pohranjuje u niz i dodaje jednoj varijabli pod nazivom “ prosjek ”.
- Nakon toga, ' prosjek ” varijabla je podijeljena sa “ 3 ' da biste pronašli prosjek jer je duljina najvećeg dopuštenog broja ' 3 ” i rezultat se prikazuje na konzoli.
- U drugom dijelu, ' pitanje() ” metoda je priložena sa sučeljem “ readlineInerface ”. Ova metoda prikazuje poruku preko konzole i definira anonimnu funkciju.
- Funkcija prihvaća korisničke ulazne podatke i dodaje te podatke u polje ' reqArr ”. Također ažurira vrijednost ' x ' svaki put i prosljeđuje ažuriranu vrijednost u ' reqData() ” funkcija. Ovo će osigurati da korisnik unosi samo vrijednosti manje od tri počevši od ' 0 ”. Na kraju, pozovite ' reqData() ” za početak postupka izvršenja.
Sada izvršite ovo koje sadrži ' pisati.js ” tako da unesete „ čvor ' ključna riječ iza ' naziv datoteke ” na terminalu:
pisanje čvoraIzlaz potvrđuje da se uzastopni ulazi čitaju i da se njihov prosjek prikazuje na konzoli korištenjem kombinacije rekurzivnog pristupa i modula readline:
Ovaj vodič objašnjava proceduru za čitanje uzastopnih unosa pomoću Node.js readline modula.
Zaključak
Za čitanje uzastopnih unosa s Node.js readline modulom, najprije uvezite ovaj modul u radnu datoteku i stvorite sučelje pomoću ' createInterface() ” metoda. Ovo sučelje poziva ' pitanje() ” metoda. Šalje zahtjeve korisniku uzastopno i prosljeđuje odgovarajuće odgovore svakog zahtjeva funkciji povratnog poziva za primjenu nekih operacija u skladu sa zahtjevima. Naučili ste proces čitanja uzastopnih unosa pomoću modula readline.