Hvordan bruger man læsbare streams i Node.js?

Hvordan Bruger Man Laesbare Streams I Node Js



Dataene overføres over netværket mellem afsender- eller kilde- og destinations- eller modtagersiden i form af streams. Disse streams kan oprettes og kombineres ved brug af flere metoder, og lyd- eller videofilerne kan også sendes over streamen. De læste data kan indsættes i andre målrettede filer ved hjælp af ' skrive() ' og ' skubbe() ”-metoder også.

Denne guide vil forklare brugen af ​​læsbare streams i Node.js.

Hvordan bruger man læsbare streams i Node.js?

Det ' Læselig '-streams oprettes ved at kalde ' createReadStream() ” og de læste data kan derefter vises over websiden ved at oprette den lokale server. Eventlytterne ved hjælp af “ på() ”-metoder kan også knyttes til de læsbare streams for at vise beskeder eller udføre specifikke handlinger, når læsningen af ​​filen begynder eller slutter.







Se eksemplet for en praktisk demonstration.



Eksempel: Læsning og visning af indhold over server ved hjælp af læsbare streams

I dette eksempel læses indholdet af en angivet fil og vises derefter i webbrowseren:



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

konst httpObj = kræve ( 'http' ) ;

konst lokal server = httpObj. opretteServer ( ( anmodning, svar ) => {

prøve {
// Målrettet fil at læse
konst datastream = fsObj. opretteReadStream ( 'usecase.txt' ) ;
// Pipe filen til svar
datastream. rør ( respons ) ;
} fangst ( fejl ) {
konsol. fejl ( fejl ) ;
}
} ) ;

lokal server. 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 ' lokal server ' variabel.
  • Brug derefter en ' prøve ' blokere inde i metodetilbagekaldsfunktionen og påkalde ' createReadStream() ' metode ved hjælp af ' fsObj ' variabel.
  • Send det målrettede filindhold, der skal læses i denne metodeparentes, og gem resultatet i ' datastream ' variabel.
  • Indsæt ' datastream variabel til ' .rør() ” metode til at sende svaret.
  • 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.

Udfør den indeholdende fil (controlFlow.js) af ovenstående kode, som er via nedenstående kommando:

node kontrolFlow. js

Det genererede output viser, at ved hjælp af ' .rør() ' og ' Læsbar stream ”, er fildataene blevet læst og sendt til destinationsstrømmen for at blive vist over websiden:



Eksempel 2: Læsning af statiske filer lokalt ved hjælp af ReadStream

I dette tilfælde vælges den leverede fil over streamen, og dens indhold vises derefter over konsolvinduet ved hjælp af begivenhedslyttere:

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

konst streamObj = fsObj. opretteReadStream ( 'usecase.txt' ) ;

streamObj. ( 'data' , ( indhold ) => {

konsol. log ( indhold. til String ( ) ) ;

} ) ;

streamObj. ( 'ende' , ( ) => {

konsol. log ( ' \n Færdig med at læse filen.' ) ;

} ) ;

streamObj. rør ( behandle. stdout ) ;

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

  • For det første ' fs '-modulet importeres, og dets objekt gemmes i ' fsObj ' variabel.
  • Brug derefter ' fsObj ' påberåber sig ' createReadStream() ”-metoden og videregiver stien til den målrettede fil, hvis indhold skal hentes. Gem resultatet af metoden i en ny variabel ' streamObj ”.
  • Vedhæft ' på() ' metode med 'streamObj', som påkalder en tilbagekaldsfunktion, når ' data ” hentes. De hentede data sendes som en parameter for tilbagekaldsfunktionen, der konverterer dataene til String-format og viser dem over konsollen.
  • Vedhæft igen ' på() ' metode med ' streamObj ” og denne gang viser dens tilbagekaldsfunktion en afsluttende besked, når læsningen af ​​filen er afsluttet.

Det genererede output efter udførelse af ovenstående kode viser, at de læste data langs den afsluttende meddelelse er blevet vist over konsollen:

Det handler om brugen af ​​læsbare streams i Node.js.

Konklusion

For at arbejde med læsbare streams i Node.js, metoden til ' createReadStream() ' påkaldes via ' fs ” modulobjekt. Den målrettede filsti, som indholdet skal skrives på, videregives derefter som metodeparameter. Det kan bruges med ' .rør() ” metode til at udføre yderligere opgaver over de hentede data som at skrive indholdet i en anden fil. Dette indlæg har illustreret proceduren for at arbejde med læsbare streams.