2016-10-09 1 views
1

書き込み可能なストリームを持っています。出力ストリームに挿入します。書き込み可能な別のストリームにデータをプロキシするnode.js書き込み可能なストリームを作成しますが、最初に独自のデータを前に付加します

私は通常inputStream.pipe(outputStream)と書いています。ここでinputStreamfoo bar、出力ストリームはfoo barです。

私はinputStreamfoo barを提供するinputStream.pipe(proxyStream('prefix ', outputStream))を、書くことができるようにしたいと思いますが、outputStreamprefix foo barを受け取るでしょう。

私は次のコードを試しましたが、パイプが始動した直後にError: write after endが得られます。あなたはそれにinputStream配管前outputStreamに書き込みをしていないのはなぜ

class DetectStream extends stream.Writable { 
    constructor (prefix, output) { 
    super(); 
    this._output = output; 
    this._output.write(prefix, 'utf-8'); 
    } 
    _write (chunk, enc, next) { 
    this._output.write(chunk, enc, next); 
    } 
} 
+0

をあなたが(.pipe 'に渡す前に、ストリームを変更することができます' – guest271314

+0

にはどうすればストリームを変更することができますか? –

+0

'inputStream'を読み込み、変更して' WritableStream'に戻し、 '.pipe()'に渡します – guest271314

答えて

1

function proxyStream (prefix, output) { 
    output.write(prefix, 'utf-8') 
    return output 
} 

次に、あなたが言っただけのようにそれを使用します)

inputStream.pipe(proxyStream('prefix ', outputStream)) 
関連する問題