小编Lau*_* VB的帖子

如何在node.js中组合变换流

我有一个csv解析器实现为一系列转换流:

process.stdin
    .pipe(iconv.decodeStream('win1252'))
    .pipe(csv.parse())
    .pipe(buildObject())
    .pipe(process.stdout);
Run Code Online (Sandbox Code Playgroud)

我想抽象解析器(在它自己的模块中)并且能够:

process.stdin.
    .pipe(parser)
    .pipe(process.stdout);
Run Code Online (Sandbox Code Playgroud)

其中parser只是先前使用的变换流的组成.

如果我做

var parser = iconv.decodeStream('win1252')
    .pipe(csv.parse())
    .pipe(buildObject());
Run Code Online (Sandbox Code Playgroud)

然后parser设置为buildObject()流,只有此转换流接收数据.

如果我做

var parser = iconv.decodeStream('win1252');
parser
    .pipe(csv.parse())
    .pipe(buildObject());
Run Code Online (Sandbox Code Playgroud)

它也不起作用,因为.pipe(process.stdout)将在第一个变换流上调用,另外两个将被绕过.

对优雅的溪流组合的任何建议?

stream node.js

12
推荐指数
2
解决办法
1206
查看次数

标签 统计

node.js ×1

stream ×1