创build一个node.js可写入stream,将数据代理到另一个可写入的stream,但是首先预先存储一些自己的数据

我有一个可写的stream,我想用自己的stream来包装一些数据,以便input输出stream。

我通常会编写inputStream.pipe(outputStream) ,其中inputStream将提供foo bar ,outputStream将接收foo bar

我想能够编写inputStream.pipe(proxyStream('prefix ', outputStream)) ,其中inputStream将提供foo bar ,但outputStream会收到prefix foo bar

我已经尝试了下面的代码,但是我得到Error: write after end在pipe道启动Error: write after end几乎立即Error: write after end

 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); } } 

为什么不在inputstreampipe道之前写入outputStream

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

然后就像你说的那样使用它:

 inputStream.pipe(proxyStream('prefix ', outputStream))