Kuidas töötada Node.js-is kirjutatavate voogudega?

Kuidas Tootada Node Js Is Kirjutatavate Voogudega



Andmed edastatakse võrgu kaudu lähte- ja sihtkohtade vahel voogudena. Saatja poolt nimetatakse allikaks ja vastuvõtja pooleks on sihtvoog. Neid vooge kasutades saab teksti- või heli- või videovormingus andmeid saata ja vastu võtta minimaalse andmelekke või -kao tõenäosusega.

See juhend selgitab Node.js-is kirjutatavate voogudega töötamist.

Kuidas töötada Node.js-is kirjutatavate voogudega?

' kirjutatav ” voogu saab kasutada uute andmete sisestamiseks faili või paigutada mõne muu juhusliku voo sisu. Andmete teisendamine või paigutus toimub enamasti ' toru () ” meetod. See meetod muudab sisu teisendamise ja määramise protsessi mugavamaks, vähendades samal ajal andmete kokkupõrke tõenäosust.







Süntaks



Kirjutatav voog luuakse järgmise meetodi abil:



fs. looWriteStream ( 'targetFile.ext' ) ;

Ülaltoodud süntaksis on ' creatWriteStream() ' kutsub esile imporditud ' fs ” moodul ja fail, kuhu andmed kirjutatakse, edastatakse parameetrina.





Vaatame paar näidet Node.js-i kirjutatavate voogude kohta.

Näide 1: Teise faili sisu kirjutamine kirjutatava voo abil

Allolevas näites saadetakse juhuslik fail loetava voo kaudu ja seejärel paigutatakse see faili sisu teise faili, mis on saadaval kirjutatavas voos:



oli fsObj = nõuda ( 'fs' ) ;

konst dataStream = fsObj. looReadStream ( 'minuuus fail1.txt' ) ;

konst writeStream = fsObj. looWriteStream ( 'minuuus fail2.txt' ) ;

dataStream. toru ( writeStream ) ;

Ülaltoodud koodi kirjeldus:

  • Esiteks, ' fs moodul imporditakse ja selle objekt salvestatakse uude fsObj ” muutuja.
  • Järgmiseks abiga ' fasObj ' kutsuge esile ' looReadStream() ” meetod loetava voo loomiseks ja edasta valitud loetav fail selle parameetrina.
  • Seejärel luuakse kirjutatav voog, kutsudes esile ' createWriteStream() ” meetodit sisu kirjutamiseks pakutavasse faili.
  • Salvestage ülaltoodud meetodite tulemused kausta ' dataStream ” ja „ writeStream ” muutujad.
  • Lõpuks kutsuge esile '. toru () ' meetod, millele järgneb ' dataStream ” ja eesotsas „ writeStream ” muutujad.

Nüüd käivitage sisaldav fail (controlFlow.js), käivitades alloleva käsu:

Näide 2: Sisu kirjutamine faili kasutades 'stream.write()' meetodit

Selles näites on ' kirjuta () ” meetodit kasutatakse andmete kirjutamiseks üle kirjutatava voo saadaoleva faili:

oli fsObj = nõuda ( 'fs' ) ;
konst httpObj = nõuda ( 'http' ) ;

konst serveLocaly = httpObj. looServer ( ( taotlus, vastus ) => {
proovige {
konst cellStream = fsObj. looWriteStream ( 'minuuus fail2.txt' ) ;
cellStream. kirjutada ( 'Andmed paigutatakse sihitud faili.' ) ;
cellStream. lõpp ( ) ;
vastuseks. lõpp ( 'Andmed, mis on kirjutatud kirjutatava voo kaudu' )
}
püüda ( viga ) {
konsool. viga ( viga ) ;
}
} ) ;
serveLocaly. kuulake ( 8080 , ( ) => {
konsool. logi ( 'Server töötab kohaliku hosti pordi numbril: '8080' )
) ;

Ülaltoodud koodi kirjeldus on järgmine:

  • Esmalt importige vajalik ' fs ” ja „ http ” mooduleid ja salvestada nende objektid fsObj ” ja „ httpObj ” muutujad.
  • Järgmisena loodi server, kutsudes esile ' looServer() ' meetodit ja salvestage see äsja loodud server ' serveLocaly ” muutuja.
  • Seejärel kasutage ' proovige ' blokeerige meetodi tagasihelistamise funktsiooni sees ja käivitage ' createWriteStream() ' meetodit kasutades ' fsObj ” muutuja.
  • Edastage sihitud fail, millesse sisu tuleb sisestada, selle meetodi sulgudes ja salvestage tulemus kausta ' cellStream ” muutuja
  • Kasutage ' kirjuta () ” meetodit selle muutujaga ja edastage selle sulgudes näiv sõnum, mis kirjutatakse sihitud faili.
  • Sulgege voog, kutsudes esile ' lõpp() ' meetodit ja kuvage veebilehel eduteade, kutsudes esile vastus.end() ” meetod. Kus ' vastuseks ' on '' tagasihelistamisparameeter looServer ” meetod.
  • Kasutage ' püüda ” plokk, et käsitleda ilmnenud tõrkeid.
  • Lõpuks kuulake või seadistage server pordi numbri kaudu ' 8080 ” ja kuvab oma tagasihelistamise funktsiooni abil eduteate.

Loodud väljund näitab, et esitatud tekst on kirjutatud ' kirjuta () ” meetod:

Näide 3: Samade andmete kirjutamine mitmesse faili

Selles näites loetakse voost üks fail, kasutades ' looReadStream() ” meetod. Seejärel kirjutatakse loetud sisu mitme faili peale, kasutades ' createWriteStream() ” ja „ .pipe() ” meetodid:

oli fsObj = nõuda ( 'fs' ) ;

konst dataStream = fsObj. looReadStream ( 'minuuus fail1.txt' ) ;

konst writeStream1 = fsObj. looWriteStream ( 'minuuus fail2.txt' ) ;

konst writeStream2 = fsObj. looWriteStream ( 'usecase.txt' ) ;

dataStream. toru ( writeStream1 ) ;

dataStream. toru ( writeStream2 ) ;

Ülaltoodud koodilõigul:

  • ' looReadStream() ” meetod käivitatakse ja selle parameetrina edastatakse fail, mille sisu tuleb lugeda. Selle meetodi tulemus salvestatakse kausta ' dataStream ” muutuja.
  • Järgmiseks ' createWriteStream() ” kutsutakse välja meetod ja sihitud fail edastatakse selle parameetrina.
  • Samal viisil edastatakse ka teise faili tee kirjutatava voona ja tulemused salvestatakse writeStream1 ” ja „ writeStream2 ” muutujad.
  • Pärast seda, kasutades ' .pipe() ' meetodil salvestatud sisu dataStream ' muutuja on määratud ' writeStream1 ” ja „ writeStream2 ” muutujad.

Loodud väljund näitab, et pakutud failisisu on voogude kaudu pakutavatesse failidesse sisestatud:

See kõik puudutab Node.js-i kirjutatavate voogude toimimist.

Järeldus

Kirjutatavate voogudega töötamiseks kasutage meetodit ' createWriteStream() ' kutsutakse välja '' kaudu fs ” mooduliobjekt. Sihitud failitee, millele sisu tuleb kirjutada, edastatakse selle parameetrina. Sisu kirjutamiseks teisest voost .pipe() ” meetodit kasutatakse. ' kirjuta () ” meetod on abiks ka siis, kui on vaja sisu otse sihitud faili kirjutada. See postitus on illustreerinud kirjutatavate voogudega töötamise protseduuri.