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. jsDet 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. på ( 'data' , ( indhold ) => {
konsol. log ( indhold. til String ( ) ) ;
} ) ;
streamObj. på ( '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.