ホームページ >ウェブフロントエンド >jsチュートリアル >Node.js のストリーム - チュートリアル - パート 7

Node.js のストリーム - チュートリアル - パート 7

Patricia Arquette
Patricia Arquetteオリジナル
2024-09-20 20:30:03537ブラウズ

Streams in Node.js - Tutorial - Part 7

Node.js のストリームを理解する

Node.js のストリームは、特に大量のデータを扱う場合に、I/O 操作を効率的に処理する強力な方法です。ストリームを使用すると、一度にデータの読み取りと書き込みを行うのではなく、データを分割して処理できるため、パフォーマンスが向上し、メモリ消費量が削減されます。

ストリームの種類

Node.js は 4 種類のストリームを提供します。

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
ストリームタイプ

説明

読み取り可能なストリーム

データの読み取りに使用されます ファイルからの読み取り
    書き込み可能なストリーム
データの書き込みに使用されます ファイルへの書き込み 二重ストリーム 読み取りと書き込みの両方が可能 ソケット ストリームの変換
  • 読み取りまたは書き込み時にデータを変更できる二重ストリームのタイプ 圧縮 ストリームの仕組み
  • ストリームはイベントで動作します。つまり、データが利用可能になったとき、書き込みの準備ができたとき、またはエラーが発生したときの応答はリスナーに依存しています。一般的なイベントは次のとおりです:
  • data: データのチャンクが利用可能な場合に発行されます。


    end

    : 消費するデータがなくなったときに発行されます。
    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);
    });
    

    error: ストリーミング プロセス中にエラーが発生した場合に生成されます。


    読み取り可能なストリームの例
    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);
    });
    

    読み取り可能なストリームを使用してファイルを読み取る例を見てみましょう:

    書き込み可能なストリームの例

    書き込み可能なストリームを使用してファイルに書き込む方法は次のとおりです。
    • ストリームを使用する理由
    readableStream.pipe(writableStream);
    

    ストリームは、大量のデータを効率的に処理するのに役立ちます。たとえば、ファイルを操作する場合、ストリームを使用すると、ファイル全体をメモリにロードする必要がなくなります。これは、メディア ファイル、大きなデータセット、または HTTP リクエストからのデータを処理する場合に特に役立ちます。


    最後のヒント

    クラッシュを避けるために、常にエラー イベントを使用してストリーム エラーを処理します。 パイプを使用して、読み取り可能なストリームを書き込み可能なストリームに簡単に接続します。 ストリームは、I/O 負荷の高いアプリケーションの操作に最適であり、大規模なデータセットを処理する際のメモリ管理が容易になります。 読んでいただきありがとうございます。コーディングを楽しんでください! ?

    以上がNode.js のストリーム - チュートリアル - パート 7の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

    声明:
    この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。