【发布时间】:2015-04-17 03:41:37
【问题描述】:
我已经在 Windows 7 上安装了 node.js,并且我正在使用转换流的基本示例来解压缩目录中的日志文件并使用 _transform 函数异步读取日志文件。
这个过程很快,但是现在我有一个问题:
我需要将源文件名映射到过滤后的行。我尝试将文件名附加到 on.readable 事件中的过滤行,但它不正确,因为数据从多个文件异步输出,因此将所有内容映射到单个文件名。我尝试了一些类似下面的代码,但这会引发错误,说创建了太多的事件侦听器。
source.pipe(gunzip).pipe(liner).pipe(new Upper(filename).pipe(process.stdout));
【问题讨论】:
-
更新:我测试了以下管道的单个文件,它工作正常。我尝试在 fs.readdir 的回调函数中使用管道,现在它失败并出现同样的太多事件侦听器错误。如何安全地使用 fs.readdir ?以下流管道适用于单个文件流:sourcefs.pipe(gunzip).pipe(liner).pipe(upper).pipe(outputfs);
标签: javascript node.js