Hvordan arbejder man med skrivbare streams i Node.js?

Hvordan Arbejder Man Med Skrivbare Streams I Node Js



Dataene overføres over netværket mellem kilde- og destinationssteder i form af streams. Afsendersiden omtales som kilden, og modtagersiden er repræsenteret som destinationsstrømmen. Ved at bruge disse streams kan data i tekstform eller lyd- eller videoformat sendes og modtages med minimale chancer for datalækage eller tab.

Denne vejledning forklarer arbejdet med skrivbare streams i Node.js.

Hvordan arbejder man med skrivbare streams i Node.js?

Det ' skrivbar ” stream kan bruges til at indsætte nye data i filen eller kan placere indholdet af en anden tilfældig stream. Datakonverteringen eller -placeringen sker for det meste ved hjælp af ' rør() ” metode. Denne metode gør processen med at konvertere og tildele indhold mere bekvem og samtidig reducere risikoen for kollision af data.







Syntaks



Den skrivbare strøm oprettes ved at påberåbe sig nedenstående metode:



fs. skabeWriteStream ( 'targetFile.ext' ) ;

I ovenstående syntaks er ' creatWriteStream() ' påkaldes af objektet for den importerede ' fs ”-modulet, og filen, som dataene skal skrives på, videregives som en parameter.





Lad os se på et par eksempler på skrivbare streams i Node.js.

Eksempel 1: Skrivning af indholdet af en anden fil ved hjælp af en skrivbar stream

I eksemplet nedenfor sendes den tilfældige fil over den læsbare Stream, og derefter placeres dette filindhold i en anden fil tilgængelig på den skrivbare Stream:



var fsObj = kræve ( 'fs' ) ;

konst datastream = fsObj. opretteReadStream ( 'minnyfil1.txt' ) ;

konst skriveStream = fsObj. skabeWriteStream ( 'minnyfil2.txt' ) ;

datastream. rør ( skriveStream ) ;

Beskrivelse af ovenstående kode:

  • For det første ' fs ”-modulet importeres og dets objekt gemmes i den nye ” fsObj ' variabel.
  • Dernæst ved hjælp af ' fasObj ' påberåbe sig ' createReadStream() ” metode til at oprette en læsbar stream og videregive den valgte læsbare fil som dens parameter.
  • Derefter oprettes den skrivbare strøm ved at kalde ' createWriteStream() ” metode til at skrive indholdet på den medfølgende fil.
  • Gem resultaterne af de ovenfor påberåbte metoder i ' datastream ' og ' skriveStream ” variabler hhv.
  • Til sidst skal du påberåbe '. rør() ' metode efterfulgt af ' datastream ” og fører med ” skriveStream ' variabler.

Udfør nu den indeholdende fil (controlFlow.js) ved at køre nedenstående kommando:

Eksempel 2: Skrivning af indhold til fil ved hjælp af 'stream.write()'-metoden

I dette eksempel er ' skrive() ” metode bruges til at skrive data over filen, der er tilgængelig over den skrivbare Stream:

var fsObj = kræve ( 'fs' ) ;
konst httpObj = kræve ( 'http' ) ;

konst betjene lokalt = httpObj. opretteServer ( ( anmodning, svar ) => {
prøve {
konst cellStream = fsObj. skabeWriteStream ( 'minnyfil2.txt' ) ;
cellStream. skrive ( 'Data, der skal placeres i målfilen.' ) ;
cellStream. ende ( ) ;
respons. ende ( 'Data skrevet via skrivbar stream' )
}
fangst ( fejl ) {
konsol. fejl ( fejl ) ;
}
} ) ;
betjene lokalt. Hør efter ( 8080 , ( ) => {
konsol. log ( 'Serveren kører på Localhost-portnummer: '8080'' )
) ;

Beskrivelsen af ​​ovenstående kode er som følger:

  • Først skal du importere den nødvendige ' fs ' og ' http ' moduler og gemmer deres objekter i ' fsObj ' og ' httpObj ” variabler hhv.
  • Derefter er serveren blevet oprettet ved at kalde ' createServer() '-metoden og lagring af denne nyoprettede server i en ' betjene lokalt ' variabel.
  • Brug derefter en ' prøve ' blokere inde i metodetilbagekaldsfunktionen og påkalde ' createWriteStream() ' metode ved hjælp af ' fsObj ' variabel.
  • Send den målrettede fil, som indholdet skal indsættes på, inden for denne metodeparentes og gem resultatet i ' cellStream ' variabel
  • Brug ' skrive() ”-metoden med denne variabel og sende en dummy-meddelelse inden for dens parentes, som vil blive skrevet i den målrettede fil.
  • Luk strømmen ved at påkalde ' ende() ”-metoden og vise en succesmeddelelse over websiden ved at påkalde “ response.end() ” metode. Hvor ' respons ' er tilbagekaldsparameteren for ' opretteServer ” metode.
  • Brug ' fangst ” blok for at håndtere eventuelle opståede fejl.
  • Lyt til sidst eller opsæt serveren over portnummeret ' 8080 ” og få vist succesmeddelelsen ved hjælp af dens tilbagekaldsfunktion.

Det genererede output viser, at den angivne tekst er skrevet ved hjælp af ' skrive() ” metode:

Eksempel 3: At skrive de samme data på flere filer

I dette eksempel vil en enkelt fil blive læst fra strømmen ved hjælp af ' createReadStream() ” metode. Derefter skrives det læste indhold over flere filer ved hjælp af ' createWriteStream() ' og ' .rør() ' metoder:

var fsObj = kræve ( 'fs' ) ;

konst datastream = fsObj. opretteReadStream ( 'minnyfil1.txt' ) ;

konst skrivStream1 = fsObj. skabeWriteStream ( 'minnyfil2.txt' ) ;

konst skrivStream2 = fsObj. skabeWriteStream ( 'usecase.txt' ) ;

datastream. rør ( skrivStream1 ) ;

datastream. rør ( skrivStream2 ) ;

I ovenstående kodestykke:

  • Det ' createReadStream() ”-metoden påkaldes, og filen, hvis indhold skal læses, videregives som dens parameter. Resultatet af denne metode gemmes i ' datastream ' variabel.
  • Dernæst ' createWriteStream() ” metode kaldes, og den målrettede fil sendes som dens parameter.
  • På samme måde sendes stien til den anden fil også som en skrivbar strøm, og resultaterne gemmes i ' skrivStream1 ' og ' skrivStream2 ' variabler.
  • Derefter skal du bruge ' .rør() ' metode indholdet gemt i ' datastream variabel tildeles til ' skrivStream1 ' og ' skrivStream2 ' variabler.

Det genererede output viser, at det leverede filindhold er blevet indsat i de leverede filer over streams:

Det handler om arbejdet med skrivbare streams i Node.js.

Konklusion

For at arbejde med skrivbare streams, metoden med ' createWriteStream() ' påkaldes via ' fs ” modulobjekt. Den målrettede filsti, som indholdet skal skrives på, videregives som dens parameter. For at skrive indholdet fra en anden strøm skal ' .rør() ”-metoden benyttes. Det ' skrive() ”-metoden er også nyttig, når det kommer til at skrive indhold direkte på den målrettede fil. Dette indlæg har illustreret proceduren for at arbejde med skrivbare streams.