Hvordan jobbe med skrivbare strømmer i Node.js?

Hvordan Jobbe Med Skrivbare Strommer I Node Js



Dataene overføres over nettverket mellom kilde- og destinasjonssteder i form av strømmer. Sendersiden blir referert til som kilden og mottakersiden er representert som destinasjonsstrømmen. Ved å bruke disse strømmene kan dataene i tekstform eller lyd- eller videoformat sendes og mottas med minimale sjanser for datalekkasje eller tap.

Denne veiledningen forklarer arbeid med skrivbare strømmer i Node.js.

Hvordan jobbe med skrivbare strømmer i Node.js?

« skrivbar ” stream kan brukes til å sette inn nye data i filen eller kan plassere innholdet i en annen tilfeldig strøm. Datakonverteringen eller plasseringen skjer for det meste ved hjelp av ' rør() 'metoden. Denne metoden gjør prosessen med å konvertere og tilordne innhold mer praktisk samtidig som den reduserer sjansene for kollisjon av data.







Syntaks



Den skrivbare strømmen opprettes ved å påkalle metoden nedenfor:



fs. createWriteStream ( 'targetFile.ext' ) ;

I syntaksen ovenfor, ' creatWriteStream() ' påkalles av objektet til den importerte ' fs ”-modulen, og filen som dataene skal skrives på sendes som en parameter.





La oss ta en titt på et par eksempler for skrivbare strømmer i Node.js.

Eksempel 1: Skrive innholdet til en annen fil ved hjelp av en skrivbar strøm

I eksemplet nedenfor sendes den tilfeldige filen over den lesbare Stream, og deretter plasseres dette filinnholdet i en annen fil som er tilgjengelig på den skrivbare Stream:



var fsObj = krever ( 'fs' ) ;

konst data strøm = fsObj. oppretteReadStream ( 'minnyfil1.txt' ) ;

konst skriveStrøm = fsObj. createWriteStream ( 'mynewfile2.txt' ) ;

data strøm. rør ( skriveStrøm ) ;

Beskrivelse av koden ovenfor:

  • Først, ' fs '-modulen importeres og objektet lagres i den nye ' fsObj variabel.
  • Deretter, ved hjelp av ' fasObj ' påkalle ' createReadStream() ” metode for å lage en lesbar strøm og sende den valgte lesbare filen som parameter.
  • Deretter opprettes den skrivbare strømmen ved å påkalle ' createWriteStream() ”-metoden for å skrive innholdet på den angitte filen.
  • Lagre resultatene av de ovennevnte metodene i ' data strøm ' og ' skriveStrøm henholdsvis ”variabler.
  • Til slutt påkaller du '. rør() ' metode etterfulgt av ' data strøm ' og leder med ' skriveStrøm ' variabler.

Kjør nå filen som inneholder (controlFlow.js) ved å kjøre kommandoen nedenfor:

Eksempel 2: Skrive innholdet til filen ved å bruke 'stream.write()'-metoden

I dette eksemplet er ' skrive() ”-metoden brukes til å skrive data over filen som er tilgjengelig over den skrivbare Stream:

 var fsObj = krever ( 'fs' ) ;
konst httpObj = krever ( 'http' ) ;

konst tjene Lokalt = httpObj. oppretteServer ( ( forespørsel, svar ) => {
prøve {
konst cellStream = fsObj. createWriteStream ( 'mynewfile2.txt' ) ;
cellStream. skrive ( 'Data som skal plasseres i målfilen.' ) ;
cellStream. slutt ( ) ;
respons. slutt ( 'Data skrevet via skrivbar strøm' )
}
å fange ( feil ) {
konsoll. feil ( feil ) ;
}
} ) ;
tjene Lokalt. lytte ( 8080 , ( ) => {
konsoll. Logg ( 'Tjeneren kjører på Localhost-portnummer: '8080' ' )
) ;

Beskrivelsen av koden ovenfor er som følger:

  • Først importerer du de nødvendige ' fs ' og ' http ' moduler og lagre objektene deres i ' fsObj ' og ' httpObj henholdsvis ”variabler.
  • Deretter har serveren blitt opprettet ved å påkalle ' createServer() '-metoden og lagre denne nyopprettede serveren i en ' tjene Lokalt variabel.
  • Bruk deretter en ' prøve ' blokker inne i metodens tilbakeringingsfunksjon og påkaller ' createWriteStream() '-metoden ved å bruke ' fsObj variabel.
  • Send den målrettede filen som innholdet må settes inn på, innenfor denne metodeparentesen og lagre resultatet i ' cellStream variabel
  • Bruk ' skrive() ”-metoden med denne variabelen og sende en dummy-melding innenfor parentesen som skal skrives i målfilen.
  • Lukk strømmen ved å påkalle ' slutt() '-metoden og vise en suksessmelding over nettsiden ved å påkalle ' response.end() 'metoden. Hvor ' respons ' er tilbakeringingsparameteren til ' oppretteServer 'metoden.
  • Bruk ' å fange ”-blokk for å håndtere eventuelle feil.
  • Til slutt, lytt eller sett opp serveren over portnummeret ' 8080 ” og vise suksessmeldingen ved hjelp av tilbakeringingsfunksjonen.

Den genererte utgangen viser at den oppgitte teksten er skrevet med ' skrive() ' metode:

Eksempel 3: Skrive samme data på flere filer

I dette eksemplet skal en enkelt fil leses fra strømmen ved å bruke ' createReadStream() 'metoden. Deretter skrives det leste innholdet over flere filer ved å bruke ' createWriteStream() ' og ' .rør() 'metoder:

var fsObj = krever ( 'fs' ) ;

konst data strøm = fsObj. oppretteReadStream ( 'minnyfil1.txt' ) ;

konst skrivStrøm1 = fsObj. createWriteStream ( 'mynewfile2.txt' ) ;

konst skriveStream2 = fsObj. createWriteStream ( 'usecase.txt' ) ;

data strøm. rør ( skrivStrøm1 ) ;

data strøm. rør ( skriveStream2 ) ;

I kodebiten ovenfor:

  • « createReadStream() ”-metoden påkalles og filen hvis innhold må leses sendes som parameter. Resultatet av denne metoden lagres i ' data strøm variabel.
  • Deretter ' createWriteStream() ”-metoden kalles og målfilen sendes som parameter.
  • På samme måte sendes banen til den andre filen også som en skrivbar strøm og resultatene lagres i ' skrivStrøm1 ' og ' skriveStream2 ' variabler.
  • Etter det bruker du ' .rør() ' metode innholdet som er lagret i ' data strøm variabel er tilordnet til skrivStrøm1 ' og ' skriveStream2 ' variabler.

Den genererte utgangen viser at det angitte filinnholdet er satt inn i de oppgitte filene over strømmene:

Det handler om hvordan skrivbare strømmer fungerer i Node.js.

Konklusjon

For å jobbe med skrivbare strømmer, metoden for ' createWriteStream() ' påkalles via ' fs ” modulobjekt. Den målrettede filbanen som innholdet må skrives på, sendes som parameter. For å skrive innholdet fra en annen strøm, ' .rør() ”-metoden benyttes. « skrive() ”-metoden er også nyttig når det gjelder å skrive innhold direkte på den målrettede filen. Dette innlegget har illustrert prosedyren for å jobbe med skrivbare strømmer.