Wie arbeite ich mit beschreibbaren Streams in Node.js?

Wie Arbeite Ich Mit Beschreibbaren Streams In Node Js



Die Daten werden über das Netzwerk in Form von Streams zwischen Quell- und Zielort übertragen. Die Senderseite wird als Quelle und die Empfängerseite als Zielstream bezeichnet. Mithilfe dieser Streams können die Daten in Textform oder im Audio- oder Videoformat mit minimalem Risiko von Datenlecks oder -verlusten gesendet und empfangen werden.

In dieser Anleitung wird die Arbeit mit beschreibbaren Streams in Node.js erläutert.

Wie arbeite ich mit beschreibbaren Streams in Node.js?

Der ' beschreibbar „Stream kann verwendet werden, um neue Daten in die Datei einzufügen oder den Inhalt eines anderen zufälligen Streams zu platzieren. Die Datenkonvertierung bzw. -platzierung erfolgt meist mit Hilfe des „ Rohr() ' Methode. Diese Methode macht das Konvertieren und Zuweisen von Inhalten komfortabler und verringert gleichzeitig die Wahrscheinlichkeit von Datenkollisionen.







Syntax



Der beschreibbare Stream wird durch Aufrufen der folgenden Methode erstellt:



fs. createWriteStream ( 'targetFile.ext' ) ;

In der obigen Syntax ist das „ creatWriteStream() ” wird vom Objekt des importierten „ aufgerufen fs ”-Modul und die Datei, in die die Daten geschrieben werden sollen, wird als Parameter übergeben.





Schauen wir uns ein paar Beispiele für beschreibbare Streams in Node.js an.

Beispiel 1: Schreiben des Inhalts einer anderen Datei mithilfe eines beschreibbaren Streams

Im folgenden Beispiel wird die Zufallsdatei über den lesbaren Stream gesendet und dann wird dieser Dateiinhalt in einer anderen Datei abgelegt, die im beschreibbaren Stream verfügbar ist:



war fsObj = erfordern ( 'fs' ) ;

const Datenstrom = fsObj. createReadStream ( 'meineneuedatei1.txt' ) ;

const writeStream = fsObj. createWriteStream ( 'meineneuedatei2.txt' ) ;

Datenstrom. Rohr ( writeStream ) ;

Beschreibung des obigen Codes:

  • Zuerst die ' fs „Modul wird importiert und sein Objekt wird im neuen“ gespeichert. fsObj ” variabel.
  • Als nächstes mit Hilfe von „ fasObj ” berufen sich auf die „ createReadStream() ”-Methode zum Erstellen eines lesbaren Streams und übergeben Sie die ausgewählte lesbare Datei als Parameter.
  • Anschließend wird der beschreibbare Stream durch Aufrufen von „ createWriteStream() ”-Methode zum Schreiben des Inhalts in die bereitgestellte Datei.
  • Speichern Sie die Ergebnisse der oben aufgerufenen Methoden im „ Datenstrom ' Und ' writeStream ” Variablen bzw.
  • Rufen Sie abschließend die Funktion „. Rohr() ” Methode gefolgt von „ Datenstrom “ und führend mit dem „ writeStream ”Variablen.

Führen Sie nun die enthaltende Datei (controlFlow.js) aus, indem Sie den folgenden Befehl ausführen:

Beispiel 2: Schreiben des Inhalts in eine Datei mit der Methode „stream.write()“.

In diesem Beispiel ist das „ schreiben() Die Methode wird verwendet, um Daten über die Datei zu schreiben, die über den beschreibbaren Stream verfügbar ist:

war fsObj = erfordern ( 'fs' ) ;
const httpObj = erfordern ( 'http' ) ;

const dienenLokal = httpObj. createServer ( ( Anfrage, Antwort ) => {
versuchen {
const cellStream = fsObj. createWriteStream ( 'meineneuedatei2.txt' ) ;
cellStream. schreiben ( „Daten, die in die Zieldatei eingefügt werden sollen.“ ) ;
cellStream. Ende ( ) ;
Antwort. Ende ( „Über beschreibbaren Stream geschriebene Daten“ )
}
fangen ( Fehler ) {
Konsole. Fehler ( Fehler ) ;
}
} ) ;
dienenLokal. Hören ( 8080 , ( ) => {
Konsole. Protokoll ( 'Server läuft auf Localhost-Portnummer: „8080“‘ )
) ;

Die Beschreibung des obigen Codes lautet wie folgt:

  • Importieren Sie zunächst das erforderliche „ fs ' Und ' http ” Module und speichern ihre Objekte in „ fsObj ' Und ' httpObj ” Variablen bzw.
  • Als nächstes wurde der Server durch Aufrufen von „ createServer() ”-Methode und Speichern dieses neu erstellten Servers in einem „ dienenLokal ” variabel.
  • Verwenden Sie dann ein „ versuchen ”-Block innerhalb der Methoden-Callback-Funktion und rufen Sie den „ auf createWriteStream() ”-Methode unter Verwendung der „ fsObj ” variabel.
  • Übergeben Sie die Zieldatei, in die der Inhalt eingefügt werden muss, innerhalb dieser Methodenklammer und speichern Sie das Ergebnis im „ cellStream ” variabel
  • Nutzen Sie die „ schreiben() ”-Methode mit dieser Variablen und übergeben Sie in ihrer Klammer eine Dummy-Nachricht, die in die Zieldatei geschrieben wird.
  • Schließen Sie den Stream, indem Sie „ Ende() ”-Methode und zeigen Sie eine Erfolgsmeldung über die Webseite an, indem Sie die „ Antwort.end() ' Methode. Wo ' Antwort „ist der Callback-Parameter des „ createServer ' Methode.
  • Nutzen Sie die „ fangen ”-Block zur Behandlung eventuell aufgetretener Fehler.
  • Abschließend hören oder richten Sie den Server über die Portnummer ein. 8080 ” und die Erfolgsmeldung mit Hilfe seiner Callback-Funktion anzeigen.

Die generierte Ausgabe zeigt, dass der bereitgestellte Text mit dem „ schreiben() ' Methode:

Beispiel 3: Schreiben derselben Daten in mehrere Dateien

In diesem Beispiel wird eine einzelne Datei aus dem Stream gelesen, indem „ createReadStream() ' Methode. Anschließend wird der gelesene Inhalt mit dem Befehl „ createWriteStream() ' Und ' .Rohr() ” Methoden:

war fsObj = erfordern ( 'fs' ) ;

const Datenstrom = fsObj. createReadStream ( 'meineneuedatei1.txt' ) ;

const writeStream1 = fsObj. createWriteStream ( 'meineneuedatei2.txt' ) ;

const writeStream2 = fsObj. createWriteStream ( 'usecase.txt' ) ;

Datenstrom. Rohr ( writeStream1 ) ;

Datenstrom. Rohr ( writeStream2 ) ;

Im obigen Codeausschnitt:

  • Der ' createReadStream() Die Methode wird aufgerufen und die Datei, deren Inhalt gelesen werden muss, wird als Parameter übergeben. Das Ergebnis dieser Methode wird im „ Datenstrom ” variabel.
  • Als nächstes wird das „ createWriteStream() Die Methode wird aufgerufen und die Zieldatei wird als Parameter übergeben.
  • Auf die gleiche Weise wird auch der Pfad für die zweite Datei als beschreibbarer Stream übergeben und die Ergebnisse werden in „ writeStream1 ' Und ' writeStream2 ”Variablen.
  • Danach verwenden Sie „ .Rohr() ”-Methode der in der „ Datenstrom Die Variable „wird der Variable „“ zugewiesen. writeStream1 ' Und ' writeStream2 ”Variablen.

Die generierte Ausgabe zeigt, dass der bereitgestellte Dateiinhalt über die Streams in die bereitgestellten Dateien eingefügt wurde:

Hier dreht sich alles um die Funktionsweise beschreibbarer Streams in Node.js.

Abschluss

Um mit beschreibbaren Streams zu arbeiten, wird die Methode „ createWriteStream() ” wird aufgerufen über die Funktion „ fs ” Modulobjekt. Als Parameter wird der Zieldateipfad übergeben, in den der Inhalt geschrieben werden muss. Um den Inhalt aus einem anderen Stream zu schreiben, muss „ .Rohr() ”-Methode verwendet wird. Der ' schreiben() Die Methode ist auch hilfreich, wenn es darum geht, Inhalte direkt in die Zieldatei zu schreiben. In diesem Beitrag wurde die Vorgehensweise bei der Arbeit mit beschreibbaren Streams veranschaulicht.