Heim  >  Artikel  >  Web-Frontend  >  Streams in Node.js – Tutorial – Teil 7

Streams in Node.js – Tutorial – Teil 7

Patricia Arquette
Patricia ArquetteOriginal
2024-09-20 20:30:03511Durchsuche

Streams in Node.js - Tutorial - Part 7

Streams in Node.js verstehen

Streams in Node.js sind eine leistungsstarke Möglichkeit, E/A-Vorgänge effizient abzuwickeln, insbesondere wenn mit großen Datenmengen gearbeitet wird. Anstatt Daten auf einmal zu lesen und zu schreiben, ermöglichen uns Streams, sie in Blöcken zu verarbeiten, was die Leistung verbessert und den Speicherverbrauch reduziert.

Arten von Streams

Node.js bietet vier Arten von Streams:

Stream Type Description Example
Readable Streams Used for reading data Reading from a file
Writable Streams Used for writing data Writing to a file
Duplex Streams Both readable and writable Sockets
Transform Streams A type of duplex stream where data can be modified as it is read or written Compression
Stream-Typ

Beschreibung

Beispiel

Lesbare Streams

Wird zum Lesen von Daten verwendet Aus einer Datei lesen
    Beschreibbare Streams
Wird zum Schreiben von Daten verwendet Schreiben in eine Datei Duplex-Streams Sowohl lesbar als auch beschreibbar Sockets Streams transformieren
  • Eine Art Duplex-Stream, bei dem Daten beim Lesen oder Schreiben geändert werden können Komprimierung Wie Streams funktionieren
  • Streams arbeiten mit Ereignissen, was bedeutet, dass sie darauf angewiesen sind, dass Listener reagieren, wenn Daten verfügbar sind, zum Schreiben bereit sind oder ein Fehler auftritt. Zu den üblichen Ereignissen gehören:
  • Daten: Wird ausgegeben, wenn ein Datenblock verfügbar ist.


    Ende

    : Wird ausgegeben, wenn keine Daten mehr verbraucht werden können.
    const fs = require('fs');
    
    const readableStream = fs.createReadStream('example.txt', { encoding: 'utf8' });
    
    readableStream.on('data', (chunk) => {
      console.log('Received chunk:', chunk);
    });
    
    readableStream.on('end', () => {
      console.log('No more data.');
    });
    
    readableStream.on('error', (err) => {
      console.error('Error:', err);
    });
    

    Fehler: Wird ausgegeben, wenn während des Streaming-Vorgangs ein Fehler auftritt.


    Beispiel für einen lesbaren Stream
    const fs = require('fs');
    
    const writableStream = fs.createWriteStream('output.txt');
    
    writableStream.write('Hello, Node.js streams!\n');
    writableStream.end(); // Close the stream
    
    writableStream.on('finish', () => {
      console.log('Finished writing.');
    });
    
    writableStream.on('error', (err) => {
      console.error('Error:', err);
    });
    

    Sehen wir uns ein Beispiel für das Lesen einer Datei mithilfe eines lesbaren Streams an:

    Beispiel für einen beschreibbaren Stream

    So können Sie mithilfe eines beschreibbaren Streams in eine Datei schreiben:
    • Warum Streams verwenden?
    readableStream.pipe(writableStream);
    

    Streams helfen bei der effizienten Verarbeitung großer Datenmengen. Wenn Sie beispielsweise mit Dateien arbeiten, können Sie mithilfe von Streams vermeiden, dass die gesamte Datei in den Speicher geladen wird. Dies ist besonders nützlich beim Umgang mit Mediendateien, großen Datensätzen oder Daten aus HTTP-Anfragen.


    Abschließende Tipps

    Behandeln Sie Stream-Fehler immer mit dem Fehlerereignis, um Abstürze zu vermeiden. Verwenden Sie Pipes, um lesbare Streams einfach mit beschreibbaren Streams zu verbinden. Streams eignen sich perfekt für die Arbeit mit I/O-intensiven Anwendungen und erleichtern die Speicherverwaltung bei der Verarbeitung großer Datenmengen. Vielen Dank fürs Lesen und viel Spaß beim Programmieren! ?

    Das obige ist der detaillierte Inhalt vonStreams in Node.js – Tutorial – Teil 7. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

    Stellungnahme:
    Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn