stream.pipeline

関数の概要

stream.pipelineとは、Node.jsで提供されている関数の一つです。この関数は、複数のストリームをパイプラインとしてつないでデータの流れを制御するために使用されます。主な目的は、ストリーム間でデータを受け渡す際にエラーハンドリングや流れの制御を簡単に行うことができる点です。

パラメータの説明

引数 用途
streams Array パイプラインに結合するストリームの配列
callback Function パイプラインが完了した際に呼び出されるコールバック関数

戻り値

stream.pipelineの戻り値はありません。非同期的にストリームをパイプラインに接続し、完了後にコールバック関数を呼び出す仕組みです。

使用例

例1:


const fs = require('fs');
const { pipeline } = require('stream');

pipeline(
  fs.createReadStream('input.txt'),
  fs.createWriteStream('output.txt'),
  (err) => {
    if (err) {
      console.error('Pipeline failed.', err);
    } else {
      console.log('Pipeline succeeded.');
    }
  }
);

例2:


const { pipeline, PassThrough } = require('stream');

const pass = new PassThrough();

pipeline(
  pass,
  process.stdout,
  (err) => {
    if (err) {
      console.error('Pipeline failed.', err);
    }
  }
);

pass.write('Data flowing through pass');
pass.end();

関連する関数

  • stream.Readable.pipe(): ストリーム間でデータをパイプする際に使用
  • stream.Transform: データの変換を行うためのストリーム

まとめ

stream.pipelineは、Node.jsでストリームを扱う際に便利な関数で、ストリーム間のデータの流れを簡単に制御できる点が特徴です。エラーハンドリングも容易に行えるため、安全かつ効率的なストリーム処理を実現することができます。