Hoe leesbare streams in Node.js te gebruiken?

Hoe Leesbare Streams In Node Js Te Gebruiken



De gegevens worden via het netwerk overgedragen tussen de zender- of bron- en bestemmings- of ontvangerzijde in de vorm van stromen. Deze streams kunnen worden gemaakt en gecombineerd met behulp van verschillende methoden, en de audio- of videobestanden kunnen ook via de stream worden doorgegeven. De gelezen gegevens kunnen in andere gerichte bestanden worden ingevoegd met behulp van “ schrijven() ' En ' duw() ook methoden.

In deze handleiding wordt het gebruik van leesbare streams in Node.js uitgelegd.

Hoe leesbare streams in Node.js te gebruiken?

De ' Leesbaar ”-streams worden gemaakt door een beroep te doen op de “ createReadStream() ' en de gelezen gegevens kunnen vervolgens via de webpagina worden weergegeven door de lokale server te maken. De gebeurtenisluisteraars met behulp van “ op() Er kunnen ook methoden aan de leesbare streams worden gekoppeld om berichten weer te geven of specifieke acties uit te voeren wanneer het lezen van het bestand begint of eindigt.







Bekijk het voorbeeld voor een praktische demonstratie.



Voorbeeld: inhoud lezen en weergeven via een server met behulp van leesbare streams

In dit voorbeeld wordt de inhoud van een verstrekt bestand gelezen en vervolgens via de webbrowser weergegeven:



const fsObj = vereisen ( 'fs' ) ;

const httpObj = vereisen ( 'http' ) ;

const lokale server = httpObj. creëerServer ( ( aanvraag antwoord ) => {

poging {
// Gericht bestand om te lezen
const data stroom = fsObj. maakReadStream ( 'usecase.txt' ) ;
// Pipetteer het bestand naar het antwoord
data stroom. pijp ( antwoord ) ;
} vangst ( fouten ) {
troosten. fout ( fouten ) ;
}
} ) ;

lokale server. luisteren ( 8080 , ( ) => {
troosten. loggen ( 'Server draait op Localhost-poortnummer: '8080' ' )
} ) ;

De beschrijving van de bovenstaande code is als volgt:





  • Importeer eerst de vereiste “ fs ' En ' http ”-modules en sla hun objecten op in “ fsObj ' En ' httpObj ”variabelen respectievelijk.
  • Vervolgens is de server aangemaakt door het aanroepen van de “ createServer() ”-methode en het opslaan van deze nieuw gemaakte server in een “ lokale server Variabel.
  • Gebruik dan een “ poging ” blok binnen de methode callback-functie en roep de “ createReadStream() ”-methode met behulp van de “ fsObj Variabel.
  • Geef de gerichte bestandsinhoud door die moet worden gelezen tussen haakjes van deze methode en sla het resultaat op in de map ' data stroom Variabel.
  • Steek de ' data stroom ' variabele in de ' .pijp() '-methode om het antwoord te verzenden.
  • Maak gebruik van de “ vangst ”-blok om eventuele opgetreden fouten af ​​te handelen.
  • Luister ten slotte of stel de server in via het poortnummer “ 8080 ' en geef het succesbericht weer met behulp van de terugbelfunctie.

Voer het bevattende bestand (controlFlow.js) van de bovenstaande code uit via de onderstaande opdracht:

knooppunt controlFlow. js

De gegenereerde output laat zien dat met behulp van “ .pijp() ' En ' Leesbare stroom ”, zijn de bestandsgegevens gelezen en naar de bestemmingsstream verzonden om op de webpagina weer te geven:



Voorbeeld 2: Statische bestanden lokaal lezen met ReadStream

In dit geval wordt het via de stream geleverde bestand geselecteerd en wordt de inhoud ervan vervolgens via het consolevenster weergegeven met behulp van gebeurtenislisteners:

const fsObj = vereisen ( 'fs' ) ;

const stroomObj = fsObj. maakReadStream ( 'usecase.txt' ) ;

stroomObj. op ( 'gegevens' , ( inhoud ) => {

troosten. loggen ( inhoud. naarString ( ) ) ;

} ) ;

stroomObj. op ( 'einde' , ( ) => {

troosten. loggen ( ' \N Klaar met het lezen van het bestand.' ) ;

} ) ;

stroomObj. pijp ( proces. stoer ) ;

De beschrijving van de bovenstaande code is als volgt:

  • Eerst de ' fs ”-module wordt geïmporteerd en het object ervan wordt opgeslagen in de “ fsObj Variabel.
  • Gebruik vervolgens “ fsObj ' roept de ' createReadStream() ”-methode en geeft het pad door van het beoogde bestand waarvan de inhoud moet worden opgehaald. Sla het resultaat van de methode op in een nieuwe variabele “ stroomObj ”.
  • Bevestig de “ op() ”methode met “streamObj” die een callback-functie aanroept wanneer “ gegevens ” wordt opgehaald. De opgehaalde gegevens worden doorgegeven als parameter voor de callback-functie die de gegevens omzet in String-indeling en deze via de console weergeeft.
  • Voeg opnieuw de “ op() 'methode met' stroomObj 'En deze keer geeft de callback-functie een eindbericht weer wanneer het lezen van het bestand is voltooid.

De gegenereerde uitvoer na het uitvoeren van de bovenstaande code laat zien dat de gelezen gegevens langs het eindbericht via de console zijn weergegeven:

Dat gaat allemaal over het gebruik van leesbare streams in Node.js.

Conclusie

Om met leesbare streams in Node.js te werken, is de methode van “ createReadStream() ' wordt aangeroepen via de ' fs ” module-object. Het beoogde bestandspad waarop de inhoud moet worden geschreven, wordt vervolgens doorgegeven als de methodeparameter. Het kan worden gebruikt met de “ .pijp() ”-methode om verdere taken uit te voeren op de opgehaalde gegevens, zoals het schrijven van de inhoud in een ander bestand. Dit bericht heeft de procedure geïllustreerd voor het werken met leesbare streams.