创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))