Webエンジニア向けプログラミング解説動画をYouTubeで配信中!
▶ チャンネル登録はこちら

【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ストリームの新しいインスタンスを返します。これは、読み取り可能なデータソースを表すオブジェクトです。

関連コンテンツ