在Node.js中创建“中间”流

时间:2015-07-29 18:49:04

标签: javascript node.js stream

在Node.js中创建“中间”流的最佳方法是什么?也就是说,一个流只是从另一个流中收集信息并将其输出。

例如,我可能希望立即从具有异步流的函数返回流:

var streamingQuery = function (query) {
    var intermediateStream = new IntermediateStream();
    database.connect(function (client) {
        var queryStream = client.query(query);
        queryStream.pipe(intermediateStream);
    });
    return intermediateStream;
};

我认为stream.DuplexStream可能是我需要的,但我不确定制作这种类型流的最佳方法是将所有数据传递到下一个流。或者也许有一个方便的帮助函数来完成这个特定的任务,如果是这样我想知道它。

1 个答案:

答案 0 :(得分:1)

我发现stream.PassThrough是内置的,似乎可以做我想要的。

var stream = require('stream');
var streamingQuery = function (query) {
    var intermediateStream = new stream.PassThrough();
    database.connect(function (client) {
        var queryStream = client.query(query);
        queryStream.pipe(intermediateStream);
    });
    return intermediateStream;
};