Kuinka työskennellä kirjoitettavien virtojen kanssa Node.js:ssä?

Kuinka Tyoskennella Kirjoitettavien Virtojen Kanssa Node Js Ssa



Tiedot siirretään verkon yli lähde- ja kohdepaikkojen välillä streamina. Lähettäjäpuolta kutsutaan lähteeksi ja vastaanottajapuolta kohdevirtana. Näitä virtoja käyttämällä tekstimuodossa tai ääni- tai videomuodossa olevaa dataa voidaan lähettää ja vastaanottaa minimaalisella tietojen vuotamisen tai katoamisen todennäköisyydellä.

Tämä opas selittää työskentelyn kirjoitettavien virtojen kanssa Node.js:ssä.

Kuinka työskennellä kirjoitettavien virtojen kanssa Node.js:ssä?

' kirjoitettava ” -virtaa voidaan käyttää lisäämään tiedostoon uutta tietoa tai sijoittamaan toisen satunnaisen streamin sisällön. Tietojen muuntaminen tai sijoittelu tapahtuu useimmiten ' putki() ”menetelmä. Tämä menetelmä tekee sisällön muuntamisesta ja määrittämisestä helpompaa ja vähentää samalla tietojen törmäysten todennäköisyyttä.







Syntaksi



Kirjoitettava tietovirta luodaan käyttämällä alla olevaa menetelmää:



fs. luodaWriteStream ( 'targetFile.ext' ) ;

Yllä olevassa syntaksissa ' creatWriteStream() tuodun kohteen kohde vetoaa ' fs ” -moduuli, ja tiedosto, johon tiedot kirjoitetaan, välitetään parametrina.





Katsotaanpa muutama esimerkki Node.js:n kirjoitettavista virroista.

Esimerkki 1: Toisen tiedoston sisällön kirjoittaminen kirjoitettavan virran avulla

Alla olevassa esimerkissä satunnainen tiedosto lähetetään luettavan virran kautta, ja sitten tämä tiedoston sisältö sijoitetaan toiseen tiedostoon, joka on saatavilla kirjoitettavassa Streamissa:



oli fsObj = vaatia ( 'fs' ) ;

konst dataStream = fsObj. luodaReadStream ( 'uusitiedosto1.txt' ) ;

konst writeStream = fsObj. luodaWriteStream ( 'uusitiedosto2.txt' ) ;

dataStream. putki ( writeStream ) ;

Kuvaus yllä olevasta koodista:

  • Ensinnäkin ' fs ' moduuli tuodaan ja sen objekti tallennetaan uuteen ' fsObj ”muuttuja.
  • Seuraavaksi '' fasObj ' kutsua ' luoReadStream() ” -menetelmää luettavan virran luomiseen ja välitä valittu luettava tiedosto sen parametriksi.
  • Sitten kirjoitettava virta luodaan kutsumalla ' createWriteStream() ” -menetelmää sisällön kirjoittamiseen toimitettuun tiedostoon.
  • Tallenna yllä mainittujen menetelmien tulokset ' dataStream ' ja ' writeStream ” muuttujia vastaavasti.
  • Lopuksi kutsu '. putki() 'menetelmä, jota seuraa ' dataStream ' ja johtaa '' writeStream ”muuttujia.

Suorita nyt sisältävä tiedosto (controlFlow.js) suorittamalla alla oleva komento:

Esimerkki 2: Sisällön kirjoittaminen tiedostoon 'stream.write()'-menetelmällä

Tässä esimerkissä ' kirjoittaa() ' -menetelmää käytetään tietojen kirjoittamiseen kirjoitettavan virran kautta saatavilla olevaan tiedostoon:

oli fsObj = vaatia ( 'fs' ) ;
konst httpObj = vaatia ( 'http' ) ;

konst serveLocaly = httpObj. createServer ( ( pyyntö, vastaus ) => {
yrittää {
konst cellStream = fsObj. luodaWriteStream ( 'uusitiedosto2.txt' ) ;
cellStream. kirjoittaa ( Kohdennettuun tiedostoon sijoitettavat tiedot. ) ;
cellStream. loppu ( ) ;
vastaus. loppu ( 'kirjoitettavan virran kautta kirjoitettu data' )
}
ottaa kiinni ( virhe ) {
konsoli. virhe ( virhe ) ;
}
} ) ;
serveLocaly. kuunnella ( 8080 , ( ) => {
konsoli. Hirsi ( 'Palvelin toimii Localhost-portin numerolla: '8080'' )
) ;

Yllä olevan koodin kuvaus on seuraava:

  • Tuo ensin tarvittava ' fs ' ja ' http ' moduuleja ja tallentaa niiden objektit ' fsObj ' ja ' httpObj ” muuttujia vastaavasti.
  • Seuraavaksi palvelin on luotu kutsumalla ' createServer() ' -menetelmää ja tallentamalla tämä äskettäin luotu palvelin ' serveLocaly ”muuttuja.
  • Käytä sitten ' yrittää ' -lohko menetelmän takaisinkutsutoiminnon sisällä ja kutsu ' createWriteStream() ' menetelmällä ' fsObj ”muuttuja.
  • Välitä kohdistettu tiedosto, johon sisältö on lisättävä, tämän menetelmän suluissa ja tallenna tulos ' cellStream ”muuttuja
  • Käytä ' kirjoittaa() ” -menetelmää tällä muuttujalla ja välitä sen suluissa valeviesti, joka kirjoitetaan kohdetiedostoon.
  • Sulje stream kutsumalla ' loppu () ' -menetelmää ja näytä onnistumisviesti verkkosivulla kutsumalla ' vastaus.end() ”menetelmä. Missä ' vastaus ' on '' -kohdan takaisinsoittoparametri createServer ”menetelmä.
  • Käytä ' ottaa kiinni ”-lohko käsitelläksesi mahdollisia virheitä.
  • Lopuksi kuuntele tai asenna palvelin portin numeron kautta ' 8080 ” ja näyttää onnistumisviestin takaisinsoittotoiminnon avulla.

Luotu tulos osoittaa, että annettu teksti on kirjoitettu käyttämällä ' kirjoittaa() 'menetelmä:

Esimerkki 3: Samojen tietojen kirjoittaminen useisiin tiedostoihin

Tässä esimerkissä yksi tiedosto luetaan virrasta käyttämällä ' luoReadStream() ”menetelmä. Sitten luettu sisältö kirjoitetaan useisiin tiedostoihin käyttämällä ' createWriteStream() ' ja ' .putki() 'menetelmät:

oli fsObj = vaatia ( 'fs' ) ;

konst dataStream = fsObj. luodaReadStream ( 'uusitiedosto1.txt' ) ;

konst writeStream1 = fsObj. luodaWriteStream ( 'uusitiedosto2.txt' ) ;

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

dataStream. putki ( writeStream1 ) ;

dataStream. putki ( writeStream2 ) ;

Yllä olevassa koodinpätkässä:

  • ' luoReadStream() ” -menetelmä kutsutaan ja tiedosto, jonka sisältö on luettava, välitetään sen parametriksi. Tämän menetelmän tulos tallennetaan ' dataStream ”muuttuja.
  • Seuraavaksi ' createWriteStream() ” -menetelmä kutsutaan ja kohdetiedosto välitetään sen parametrina.
  • Samalla tavalla myös toisen tiedoston polku välitetään kirjoitettavana virtana ja tulokset tallennetaan ' writeStream1 ' ja ' writeStream2 ”muuttujia.
  • Tämän jälkeen käyttämällä ' .putki() ' -menetelmällä ' dataStream '-muuttuja on määritetty ' writeStream1 ' ja ' writeStream2 ”muuttujia.

Luotu tulos osoittaa, että toimitettu tiedoston sisältö on lisätty annettuihin tiedostoihin virtojen kautta:

Siinä kaikki Node.js:n kirjoitettavien virtojen toiminnasta.

Johtopäätös

Jos haluat työskennellä kirjoitettavien virtojen kanssa, käytä menetelmää ' createWriteStream() ' kutsutaan '' kautta fs ” moduuliobjekti. Kohdennettu tiedostopolku, jolle sisältö on kirjoitettava, välitetään sen parametrina. Jos haluat kirjoittaa sisältöä toisesta virrasta ' .putki() ”menetelmää käytetään. ' kirjoittaa() ” -menetelmä on hyödyllinen myös silloin, kun sisältöä kirjoitetaan suoraan kohdetiedostoon. Tämä viesti on havainnollistanut menettelyä työskennellä kirjoitettavien virtojen kanssa.