【Node.js24.x】Stream::pipe()メソッドの使い方
pipeメソッドの使い方について、初心者にもわかりやすく解説します。
作成日: 更新日:
基本的な使い方
pipeメソッドは、読み込みストリーム(Readable Stream)から書き込みストリーム(Writable Stream)へ、データの流れを効率的に接続し、管理するメソッドです。このメソッドを利用することで、あるストリームから読み込んだデータを、別のストリームに自動的に書き込むことができます。例えば、ファイルからデータを読み込み、それを別のファイルに書き出すといった操作を、開発者が手動でイベントを監視したり、バッファを管理したりすることなく実現できます。pipeメソッドは、データの流量を調整する「バックプレッシャー」の仕組みも内部的に処理します。これにより、データが速く供給されすぎたり、書き込み先が処理しきれないほどデータを受け取ったりする状況を防ぎ、安定したデータ転送を可能にします。このメソッドは、呼び出し元の読み込みストリームをデータソースとして、引数で指定された書き込みストリームをデータシンクとして機能させます。また、pipeメソッドは接続先の書き込みストリームを返却するため、複数のpipeメソッドを繋げて利用する「メソッドチェーン」も可能です。これにより、複雑なデータ処理パイプラインを簡潔に構築できます。
構文(syntax)
1import { createReadStream, createWriteStream } from 'node:fs'; 2 3const readableStream = createReadStream('input.txt'); 4const writableStream = createWriteStream('output.txt'); 5 6readableStream.pipe(writableStream);
引数(parameters)
dest, options
- dest: Stream: パイプ先のStreamオブジェクトを指定します。
- options: object = null: パイプ処理のオプションを指定します。
戻り値(return)
<stream.Writable> | <stream.Duplex> | <stream.Transform>
pipeメソッドは、ストリームの出力を別のストリームに接続し、その接続されたストリームを返します。返されるストリームは、Writable、Duplex、またはTransformのいずれかの型になります。