我有一个写入流和一个我一直想要使用的变换流:
transform.pipe(writeable)
然后很久以后我可以绕过一条可读的流进入。
但是因为管道导致读取被触发,上面的管道会立即崩溃,因为transform
不是可读流。
如何创建一个始终具有始终位于其前面的特定transform
的可写流?
例如,我想将所有应用程序的日志写入文件,但我希望这些日志始终为大写,并且我读取的读取流来来去去,但写入流始终存在。
通常这是我得到的错误:
Error: Cannot pipe. Not readable.
答案 0 :(得分:0)
非常简单 - 您的转换流必须是Transform流或双工的实例 - 然后它既可以同时读取也可写入。
这样
readable.pipe(transform);
然后
transform.pipe(someFileIJustFoundAbout);
会很好用。
如果您想让这更容易,可以使用我的scramjet模块,其中转换是通过一种简单的方法定义的:
readable.pipe(new scramjet.DataStream())
.breakup(bytes) // breakup into bytes length
.map((a) => modify(a)) // do something with the data
.pipe(writeable); // write it somewhere