Kaip skaityti nuoseklias įvestis naudojant Node.js Readline modulį?

Kaip Skaityti Nuoseklias Ivestis Naudojant Node Js Readline Moduli



skaitymo linija ” Node.js modulis idealiai tinka naudoti tais atvejais, kai iš galutinio vartotojo reikia paimti daugiau nei vieną įvestį iš eilės. Šis modulis apvynioja standartinę išvestį ir įvestį, kuri padeda nuskaityti įvesties srautą eilutė po eilutės nepraleidžiant jokių gautų duomenų. Atėjus „ skaitymo linija “ modulį, duomenų gavimo realiuoju laiku procedūra tampa daug paprastesnė ir greitesnė.

Šiame įraše paaiškinama, kaip nuskaityti nuoseklias įvestis naudojant nodejs readline modulį.

Kaip skaityti nuoseklias įvestis naudojant Node.js Readline modulį?

Nuosekli įvestis yra ta, kuri paima ir išsaugo atsakymus į kelis klausimus tuo pačiu metu nuosekliai. Šios nuoseklios užklausos dažniausiai užduodamos prisijungiant prie kai kurių kursų arba tikrinant. Toliau pateikiami keli pavyzdžiai, kaip nuskaityti nuoseklias įvestis naudojant Node.js skaitymo linijos modulį.







1 pavyzdys: nuoseklių įvesčių skaitymas naudojant Readline modulį ir masyvus

Šiame pavyzdyje iš eilės įvestis paimamos ir nuskaitomos naudojant „ skaitymo linija “ modulis. Įvesties duomenys saugomi masyve, iš kurio jie rodomi konsolėje:



konst skaitymo linija = reikalauti ( 'skaitytoji linija' ) ;

konst readline Interface = skaitymo linija. sukurti sąsają ( {

įvestis : procesas. stdin ,

išvestis : procesas. stdout

} )

konst req0 = 'Gegužė! Aš žinau tavo slapyvardį?' ;

konst 1 reikal = 'Koks tavo hobis' ;

konst 2 reikal = 'Ko tau patinka klausytis' ;

konst 3 reikal = 'Gegužė! Žinau tavo mėgstamiausią patiekalą?' ;

konst 4 reikal = 'Kur tu gyveni?' ;

konst 5 reikal = 'Kokia tavo mėgstamiausia spalva' ;

konst 6 reikal = 'Kas tavo geriausias draugas' ;

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

tegul res = '' ;

konst reqData = x => {

jeigu ( x < reqArr. ilgio ) {

readline Interface. klausimas ( reqArr [ x ] , ( reqResponse ) => {

res += ' \n ' + reqResponse ;

reqData ( x + 1 ) ;

} ) ;

} Kitas {

konsolė. žurnalas ( `Ačiū dėl pasidalinti su manimi ! $ { res } ` ) ;

readline Interface. Uždaryti ( ) ;

}

} ;

reqData ( 0 ) ;

Aukščiau pateiktame kodo fragmente naudojamo kodo aprašymas nurodytas toliau:



  • Pradėkite importuodami „ skaitymo linija ' modulį ir išsaugokite jo objektą kintamajame pavadinimu ' skaitymo linija “.
  • Tada sukurkite sąsają pavadinimu ' readline Interface ' už ' skaitymo linija “ objektas, kuris apvynioja standartinį įvesties ir išvesties procesą naudodamas „ sukurti sąsają () “ metodas. Jis taip pat susieja kiekvieną užklausą ir atsakymą su vienu įvesties skaitomu ir išvesties įrašomu srautu, naudodamas „ procesas ' nuosavybė.
  • Tada sukurkite septynis konst “ tipo kintamuosius, kad išsaugotumėte kai kuriuos prašymus ar klausimus, kuriuos reikia užduoti iš eilės. Išsaugokite šias konstantas viename masyve, pavadintame ' reqArr “.
  • Sukurti naują tuščią kintamąjį “ res “, apibrėžkite rodyklės funkciją pavadinimu „ reqData “ ir perduoti vieną parametrą „ x “.
  • Šioje funkcijoje naudokite „ jeigu “ teiginys, kuris patikrina, ar pateikto parametro reikšmė yra mažesnė už „“ ilgį reqArr ' arba ne.
  • Jei tiesa, „ klausimas () Sąsajai taikomas metodas ir kiekviena masyvo užklausa rodoma išvestyje nuosekliai. Tada jis perduoda atitinkamas pateiktas reikšmes kaip argumentą.
  • Šie argumentai saugomi jau sukurtame masyve ' res “.
  • Kai visos užklausos nuosekliai rodomos konsolėje, būsena „ jeigu “ teiginys tampa klaidingas ir „ Kitas “ dalis, “ res “ masyvas rodomas per konsolę.
  • Galiausiai readline sąsaja taip pat uždaroma iškvietus „ Uždaryti() “ metodas. Taip pat iškvieskite „ reqData () ' funkcija ir perduoti pradinę reikšmę ' 0 “, norėdami pradėti klausimą iš viršaus arba nuo pirmojo masyve esančio klausimo.

Dabar paleiskite šį failą, įvesdami „ mazgas ' raktinis žodis už ' failo pavadinimas “ terminale:





mazgas rašyti

Išvestis rodo, kad programa perskaitė nuoseklias įvestis ir grąžino visus iš karto:

2 pavyzdys: nuoseklių įvesčių skaitymas naudojant Readline modulį ir rekursinę funkciją

Metodo rekursyvinis metodas naudojamas su „ skaitymo linija ” Node.js modulis, skirtas nuskaityti iš eilės įvestis iš vartotojo įvesties sraute:



konst skaityti = reikalauti ( 'skaitytoji linija' ) ;
konst readline Interface = skaityti. sukurti sąsają ( {
įvestis : procesas. stdin ,
išvestis : procesas. stdout
} )
buvo reqArr = [ ]
funkcija reqData ( x ) {
jeigu ( x > 3 )
{
var vidurkis = 0
dėl ( j in reqArr )
{
vidutinis += Skaičius ( reqArr [ j ] )
}
konsolė. žurnalas ( vidutinis / 3 ) ;
}
Kitas
{
readline Interface. klausimas ( 'Įveskite' + x + 'skaičius iš 3:' , funkcija ( reqResponse ) {
reqArr. stumti ( reqResponse )
reqData ( x + 1 )
} )
}
}

reqData ( 1 ) ;

Aukščiau pateikto kodo paaiškinimas aprašytas toliau punktų pavidalu:

  • Pirmiausia importuokite „ skaitymo linija 'naujai sukurtame' rašyti.js “ failą ir išsaugokite metodo objektą „ skaityti “ kintamasis. Sukurkite sąsają, kurioje saugomas skaitymo linija ' sąsaja, sukurta naudojant ' sukurti sąsają () “ metodas.
  • Dabar sukurkite tuščią masyvą pavadinimu ' reqArr “ ir apibrėžkite „ reqData () “ funkcija, kuri taip pat priima vieną parametrą pavadinimu “ x “.
  • Funkcija pirmiausia patikrina, ar pateikta vertė yra didesnė nei ' 3 ' arba ne. Jei tiesa, gautos reikšmės, kurios ateina į „ x “ kintamasis išsaugomas masyve ir pridedamas prie vieno kintamojo pavadinimu “ vidutinis “.
  • Po to „ vidutinis ' kintamasis yra padalintas iš ' 3 “ norėdami rasti vidurkį, nes didžiausio leistino skaičiaus ilgis yra „ 3 “ ir rezultatas rodomas konsolėje.
  • Kitoje dalyje „ klausimas () 'metodas yra prijungtas prie sąsajos' readlineInerface “. Šis metodas rodo pranešimą per konsolę ir apibrėžia anoniminę funkciją.
  • Funkcija priima vartotojo įvestus duomenis ir prideda tuos duomenis į masyvą ' reqArr “. Taip pat atnaujinama „ x “ kiekvieną kartą ir perduoda atnaujintą reikšmę „ reqData () ' funkcija. Tai užtikrins, kad vartotojas įves tik mažesnes nei tris reikšmes, pradedant nuo „ 0 “. Galiausiai iškvieskite „ reqData () “ funkciją, kad pradėtumėte vykdymo procesą.

Dabar paleiskite tai su ' write.js “ failą įvesdami „ mazgas ' raktinis žodis už ' failo pavadinimas “ terminale:

mazgas rašyti

Išvestis patvirtina, kad skaitomi nuoseklūs įėjimai ir jų vidurkis rodomas konsolėje, naudojant rekursinio metodo ir skaitymo modulio derinį:

Šiame vadove paaiškinama, kaip nuskaityti nuoseklias įvestis naudojant Node.js skaitymo linijos modulį.

Išvada

Norėdami nuskaityti nuoseklias įvestis su Node.js skaitymo linijos moduliu, pirmiausia importuokite šį modulį į darbinį failą ir sukurkite sąsają naudodami „ sukurti sąsają () “ metodas. Ši sąsaja iškviečia „ klausimas () “ metodas. Jis siunčia užklausas vartotojui iš eilės ir perduoda atitinkamus kiekvienos užklausos atsakymus atgalinio iškvietimo funkcijai, kad būtų pritaikytos kai kurios operacijos pagal reikalavimus. Išmokote nuoseklių įvesties skaitymo procesą naudodami skaitymo linijos modulį.