Kā lasīt secīgas ievades, izmantojot Node.js Readline moduli?

Ka Lasit Secigas Ievades Izmantojot Node Js Readline Moduli



' lasāmrinda ” Node.js modulis ir ideāli piemērots lietošanai gadījumos, kad no gala lietotāja ir jāievada vairāk nekā viena secīga ievade. Šis modulis aptver standarta izvadi un ievadi, kas palīdz nolasīt ievades straumi rindu pēc rindas, neizlaižot saņemtos datus. Līdz ar ' lasāmrinda ” moduli, datu izgūšanas procedūra reāllaikā kļūst daudz vienkāršāka un ātrāka.

Šajā pārrakstā ir izskaidrota secīgo ieeju nolasīšanas procedūra, izmantojot nodejs lasīšanas līnijas moduli.

Kā lasīt secīgas ievades, izmantojot Node.js Readline moduli?

Secīgā ievade ir tā, kas secīgi ņem un saglabā atbildes uz vairākiem jautājumiem vienlaikus. Šie secīgie vaicājumi galvenokārt tiek uzdoti, pievienojoties dažiem kursiem vai pārbaudes laikā. Tālāk ir sniegti daži piemēri secīgu ievadu lasīšanai, izmantojot Node.js lasīšanas līnijas moduli.







1. piemērs: secīgu ievadu lasīšana, izmantojot Readline moduli un masīvus

Šajā piemērā secīgie ievadi tiek ņemti un nolasīti, izmantojot “ lasāmrinda ” modulis. Ievades tiek saglabātas masīvā, no kurienes tās tiek parādītas konsolē:



konst lasāmrinda = pieprasīt ( 'lasīšanas līnija' ) ;

konst readlineinterfeiss = lasāmrinda. izveidot interfeisu ( {

ievade : process. stdin ,

izvade : process. stdout

} )

konst req0 = 'Maijs! Vai es zinu tavu segvārdu? ;

konst req1 = 'Kāds ir tavs hobijs' ;

konst req2 = 'Ko tev patīk klausīties' ;

konst req3 = 'Maijs! Vai es zinu tavu mīļāko ēdienu? ;

konst req4 = 'Kur tu dzīvo?' ;

konst req5 = 'Kāda ir tava mīļākā krāsa' ;

konst req6 = 'Kurš ir tavs labākais draugs' ;

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

let res = '' ;

konst reqData = x => {

ja ( x < reqArr. garums ) {

readlineinterfeiss. jautājums ( reqArr [ x ] , ( reqResponse ) => {

res += ' \n ' + reqResponse ;

reqData ( x + 1 ) ;

} ) ;

} cits {

konsole. žurnāls ( `Paldies priekš daloties ar mani ! $ { res } ` ) ;

readlineinterfeiss. aizveriet ( ) ;

}

} ;

reqData ( 0 ) ;

Iepriekš minētajā koda fragmentā izmantotā koda apraksts ir norādīts tālāk:



  • Sāciet, importējot “ lasāmrinda ' moduli un saglabājiet tā objektu mainīgajā ar nosaukumu ' lasāmrinda ”.
  • Pēc tam izveidojiet saskarni ar nosaukumu ' readlineinterfeiss ' priekš ' lasāmrinda ” objekts, kas iesaiņo standarta ievades un izvades procesu, izmantojot “ izveidot saskarni () ” metode. Tas arī saista katru pieprasījumu un atbildi ar vienu ievades lasāmu un izvadāmu rakstāmu straumi, izmantojot ' process ” īpašums.
  • Pēc tam izveidojiet septiņus konst ” tipa mainīgos, lai saglabātu dažus pieprasījumus vai jautājumus, kas jāuzdod secīgi. Saglabājiet šīs konstantes vienā masīvā ar nosaukumu ' reqArr ”.
  • Izveidojiet jaunu tukšu mainīgo ' res ”, definējiet bultiņas funkciju ar nosaukumu “ reqData ' un nododiet vienu parametru ' x ”.
  • Šīs funkcijas ietvaros izmantojiet ' ja ” paziņojums, kas pārbauda, ​​vai sniegtā parametra vērtība ir mazāka par “ reqArr ' vai nē.
  • Patiesības gadījumā “ jautājums () ” metode tiek piemērota saskarnei, un tā secīgi parāda katru pieprasījumu no masīva izvadē. Pēc tam tas nodod tām atbilstošās norādītās vērtības kā argumentu.
  • Šie argumenti tiek saglabāti jau izveidotajā masīvā ' res ”.
  • Kad visi pieprasījumi tiek secīgi parādīti konsolē, nosacījums “ ja ' paziņojums kļūst nepatiess un sadaļā ' cits daļa, ' res ” masīvs tiek parādīts virs konsoles.
  • Visbeidzot, lasīšanas interfeiss tiek aizvērts, izsaucot ' aizvērt () ” metode. Tāpat izsauciet ' reqData() ' funkciju un nododiet sākotnējo vērtību ' 0 ”, lai sāktu jautājumu no augšas vai no pirmā masīvā pieejamā jautājuma.

Tagad izpildiet šo saturošo failu, ievadot “ mezgls ' atslēgvārds aiz ' faila nosaukums ” terminālī:





mezgla rakstīšana

Izvade parāda, ka programma ir nolasījusi secīgās ievades un atgriezusi tās visas uzreiz:

2. piemērs: secīgu ievadu lasīšana, izmantojot Readline moduli un rekursīvo funkciju

Metodē tiek izmantota rekursīvā pieeja ar “ lasāmrinda ” Node.js modulis, lai nolasītu secīgās ievades no lietotāja ievades straumē:



konst lasīt = pieprasīt ( 'lasīšanas līnija' ) ;
konst readlineinterfeiss = lasīt. izveidot interfeisu ( {
ievade : process. stdin ,
izvade : process. stdout
} )
bija reqArr = [ ]
funkcija reqData ( x ) {
ja ( x > 3 )
{
var vidēji = 0
priekš ( j in reqArr )
{
vidēji += Numurs ( reqArr [ j ] )
}
konsole. žurnāls ( vidēji / 3 ) ;
}
cits
{
readlineinterfeiss. jautājums ( 'Ievadiet' + x + 'skaitlis no 3:' ,    funkciju ( reqResponse ) {
reqArr. spiediet ( reqResponse )
reqData ( x + 1 )
} )
}
}

reqData ( 1 ) ;

Iepriekš minētā koda skaidrojums ir aprakstīts tālāk aizzīmju veidā:

  • Vispirms importējiet ' lasāmrinda 'jaunizveidotā' write.js ” failu un saglabājiet metodes objektu mapē lasīt ” mainīgais. Izveidojiet interfeisu, kas saglabā ' lasāmrinda ” interfeiss, kas izveidots, izmantojot izveidot saskarni () ” metode.
  • Tagad izveidojiet tukšu masīvu ar nosaukumu ' reqArr ' un definējiet ' reqData() ' funkcija, kas arī pieņem vienu parametru ar nosaukumu ' x ”.
  • Funkcija vispirms pārbauda, ​​vai norādītā vērtība ir lielāka par ' 3 ' vai nē. Patiesības gadījumā izgūtās vērtības, kas tiek rādītas x 'Mainīgais tiek saglabāts masīvā un pievienots vienam mainīgajam ar nosaukumu ' vidēji ”.
  • Pēc tam ' vidēji 'mainīgais ir dalīts ar ' 3 ', lai atrastu vidējo, jo maksimālā atļautā skaitļa garums ir ' 3 ” un rezultāts tiek parādīts konsolē.
  • Citā daļā “ jautājums () 'metode ir pievienota interfeisam' readlineInerface ”. Šī metode parāda ziņojumu konsolē un definē anonīmu funkciju.
  • Funkcija pieņem lietotāja ievadītos datus un pievieno šos datus masīvam ' reqArr ”. Tas arī atjaunina vērtību “ x ” katru reizi un nodod atjaunināto vērtību uz “ reqData() ” funkcija. Tas nodrošinās, ka lietotājs ievada tikai vērtības, kas ir mazākas par trim, sākot no “ 0 ”. Visbeidzot izsauciet ' reqData() ” funkciju, lai sāktu izpildes procesu.

Tagad izpildiet šo, kas satur ' write.js ' failu, ievadot ' mezgls ' atslēgvārds aiz ' faila nosaukums ” terminālī:

mezgla rakstīšana

Izvade apstiprina, ka tiek nolasītas secīgas ievades un to vidējais rādītājs tiek parādīts konsolē, izmantojot rekursīvās pieejas un lasīšanas moduļa kombināciju:

Šajā rokasgrāmatā ir izskaidrota secīgu ievades lasīšanas procedūra, izmantojot Node.js lasīšanas līnijas moduli.

Secinājums

Lai lasītu secīgās ievades ar Node.js lasīšanas līnijas moduli, vispirms importējiet šo moduli darba failā un izveidojiet saskarni, izmantojot “ izveidot saskarni () ” metode. Šī saskarne izsauc ' jautājums () ” metode. Tā nosūta pieprasījumus lietotājam secīgi un nodod katra pieprasījuma atbilstošās atbildes atzvanīšanas funkcijai, lai atbilstoši prasībām piemērotu dažas darbības. Jūs esat apguvis secīgu ievades lasīšanas procesu, izmantojot lasīšanas moduli.