永久地将写入流与变换流相结合?

时间:2016-03-12 02:56:18

标签: node.js

我有一个写入流和一个我一直想要使用的变换流:

transform.pipe(writeable)

然后很久以后我可以绕过一条可读的流进入。

但是因为管道导致读取被触发,上面的管道会立即崩溃,因为transform不是可读流。

如何创建一个始终具有始终位于其前面的特定transform的可写流?

例如,我想将所有应用程序的日志写入文件,但我希望这些日志始终为大写,并且我读取的读取流来来去去,但写入流始终存在。

通常这是我得到的错误:

Error: Cannot pipe. Not readable.

1 个答案:

答案 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