Kaip naudoti skaitomus srautus Node.js?

Kaip Naudoti Skaitomus Srautus Node Js



Duomenys per tinklą perduodami tarp siuntėjo arba šaltinio ir paskirties ar gavėjo pusių srautų pavidalu. Šiuos srautus galima sukurti ir derinti naudojant kelis metodus, o garso ar vaizdo failus taip pat galima perduoti per srautą. Nuskaitytus duomenis galima įterpti į kitus tikslinius failus naudojant „ rašyti () “ ir „ stumti () “ metodai taip pat.

Šiame vadove bus paaiškintas skaitomų srautų naudojimas Node.js.

Kaip naudoti skaitomus srautus Node.js?

Skaitomas ' srautai sukuriami naudojant ' sukurtiReadStream() “, o nuskaityti duomenys gali būti rodomi tinklalapyje, sukuriant vietinį serverį. Renginio klausytojai padedami „ ant () “ metodus taip pat galima pridėti prie skaitomų srautų, kad būtų rodomi pranešimai arba atliekami konkretūs veiksmai, kai failo skaitymas prasideda arba baigiasi.







Peržiūrėkite pavyzdį praktiniam demonstravimui.



Pavyzdys: Turinio skaitymas ir rodymas serveryje naudojant skaitomus srautus

Šiame pavyzdyje pateikto failo turinys skaitomas ir rodomas žiniatinklio naršyklėje:



konst fsObj = reikalauti ( 'fs' ) ;

konst httpObj = reikalauti ( 'http' ) ;

konst vietinis serveris = httpObj. sukurti serverį ( ( prašymas, atsakymas ) => {

bandyti {
// Tikslinis failas skaityti
konst DataStream = fsObj. sukurti „ReadStream“. ( „usecase.txt“ ) ;
// Nukreipkite failą į atsakymą
DataStream. vamzdis ( atsakymą ) ;
} sugauti ( klaidų ) {
konsolė. klaida ( klaidų ) ;
}
} ) ;

vietinis serveris. klausyk ( 8080 , ( ) => {
konsolė. žurnalas ( „Serveris veikia „Localhost“ prievado numeriu: „8080“ )
} ) ;

Aukščiau pateikto kodo aprašymas yra toks:





  • Pirmiausia importuokite reikiamą fs “ ir „ http “ modulius ir saugoti jų objektus „ fsObj “ ir „ httpObj “ kintamieji.
  • Tada serveris buvo sukurtas naudojant „ CreateServer() “ metodą ir saugoti šį naujai sukurtą serverį „ vietinis serveris “ kintamasis.
  • Tada naudokite „ bandyti “ blokuoti metodo atgalinio iškvietimo funkcijoje ir iškviesti „ sukurtiReadStream() “ metodas naudojant „ fsObj “ kintamasis.
  • Perduokite tikslinį failo turinį, kurį reikia perskaityti šio metodo skliausteliuose ir išsaugokite rezultatą „ DataStream “ kintamasis.
  • Įdėkite ' DataStream ' kintamasis į ' .pipe() “ būdas išsiųsti atsakymą.
  • Naudokite ' sugauti “ bloką, kad būtų galima apdoroti visas įvykusias klaidas.
  • Galiausiai klausykite arba nustatykite serverį per prievado numerį “ 8080 “ ir parodyti sėkmės pranešimą naudodami atgalinio skambinimo funkciją.

Vykdykite aukščiau pateikto kodo failą (controlFlow.js), kuriame yra toliau nurodyta komanda:

mazgo valdymasFlow. js

Sukurta išvestis rodo, kad naudojant „ .pipe() “ ir „ Skaitomas srautas “, failo duomenys buvo nuskaityti ir išsiųsti į paskirties srautą, kad būtų rodomi tinklalapyje:



2 pavyzdys: Statinių failų skaitymas vietoje naudojant ReadStream

Tokiu atveju parenkamas pateiktas failas per srautą, o jo turinys rodomas konsolės lange, naudojant įvykių klausytojus:

konst fsObj = reikalauti ( 'fs' ) ;

konst srautasObj = fsObj. sukurti „ReadStream“. ( „usecase.txt“ ) ;

srautasObj. įjungta ( 'duomenys' , ( turinys ) => {

konsolė. žurnalas ( turinys. toString ( ) ) ;

} ) ;

srautasObj. įjungta ( 'galas' , ( ) => {

konsolė. žurnalas ( ' \n Baigė skaityti failą.' ) ;

} ) ;

srautasObj. vamzdis ( procesas. stdout ) ;

Aukščiau pateikto kodo aprašymas yra toks:

  • Pirma, „ fs “ modulis yra importuojamas ir jo objektas saugomas „ fsObj “ kintamasis.
  • Tada naudokite „ fsObj “ iššaukia “ sukurtiReadStream() “ metodą ir perduoda tikslinio failo, kurio turinį reikia nuskaityti, kelią. Išsaugokite metodo rezultatą naujame kintamajame ' srautasObj “.
  • Pridėkite ' ant () “ metodas su „streamObj“, kuris iškviečia atgalinio skambinimo funkciją, kai „ duomenis “ yra gaunamas. Gauti duomenys perduodami kaip atgalinio skambinimo funkcijos parametras, kuris konvertuoja duomenis į eilutės formatą ir rodomas konsolėje.
  • Dar kartą pridėkite ' ant () “ metodas su “ srautasObj “ ir šį kartą jo atgalinio ryšio funkcija rodo pabaigos pranešimą, kai failas bus nuskaitytas.

Sugeneruota išvestis atlikus aukščiau pateiktą kodą rodo, kad nuskaityti duomenys kartu su pabaigos pranešimu buvo rodomi konsolėje:

Tai viskas apie skaitomų srautų naudojimą Node.js.

Išvada

Norėdami dirbti su skaitomais srautais Node.js, naudojamas metodas „ sukurtiReadStream() “ iškviečiamas per „ fs “ modulio objektas. Tada kaip metodo parametras perduodamas tikslinis failo kelias, kuriuo reikia įrašyti turinį. Jis gali būti naudojamas su ' .pipe() “ metodas, skirtas atlikti tolesnes užduotis, susijusias su gautais duomenimis, pavyzdžiui, įrašyti turinį į kitą failą. Šis įrašas iliustruoja darbo su skaitomais srautais procedūrą.