【Node.js24.x】Stream::Readable()メソッドの使い方
Readableメソッドの使い方について、初心者にもわかりやすく解説します。
作成日: 更新日:
基本的な使い方
Readableクラスは、Node.jsにおいてデータソースからデータを読み込む操作を抽象化し、効率的に扱うための仕組みを提供する基底クラスです。このクラスは、ファイルシステムからの読み込み、HTTPリクエストの受信、データベースからのクエリ結果など、様々な入力源からのデータをストリームとして処理するために利用されます。
大量のデータを一度にメモリに読み込むのではなく、データをチャンク(断片)として少しずつ処理できるため、アプリケーションのメモリ使用量を抑えながら、高速なデータ転送を可能にします。これにより、大規模なデータやネットワークI/Oを扱う際に高いパフォーマンスを発揮します。
Readableストリームは、データが読み込み可能になった際に'readable'イベントを、実際にデータが利用可能になった際に'data'イベントを発行します。開発者はread()メソッドを使ってデータを明示的に取得したり、pipe()メソッドを用いてデータを他の書き込み可能なストリームへ容易に転送したりできます。
また、データ生成者と消費者の速度差を自動的に調整するバックプレッシャー機構を内蔵しており、システムのリソース過負荷を防ぎます。Node.jsでI/O処理を行う上で中心的な役割を果たす重要なコンポーネントです。
構文(syntax)
const { Readable } = require('stream');
const myStream = Readable.from(['データ1', 'データ2', 'データ3']);
引数(parameters)
options
- options: object: Readable ストリームの動作をカスタマイズするためのオプションオブジェクト。以下のプロパティを持つことができます。
highWaterMark: number: ストリームがデータを受け入れる最大バイト数。デフォルトは 16384 です。encoding: string: ストリームから読み取られるデータのエンコーディング。デフォルトは null です。objectMode: boolean: true に設定すると、ストリームはオブジェクトを扱うようになります。デフォルトは false です。emitClose: boolean: true に設定すると、ストリームが閉じられたときに 'close' イベントが発行されます。デフォルトは true です。readableObjectMode: boolean: objectMode と同様ですが、 Readable ストリームにのみ適用されます。autoDestroy: boolean: true に設定すると、ストリームが終了またはエラー時に自動的に破棄されます。デフォルトは true です。destroy: function: ストリームの破棄時に呼び出されるカスタム関数。read: function: ストリームからデータを読み取るためのカスタム関数。
戻り値(return)
Readable
Readableストリームの新しいインスタンスを返します。これは、読み取り可能なデータソースを表すオブジェクトです。