节点js:将数据传输到多个流

时间:2014-05-22 17:25:14

标签: javascript node.js stream pipe

我正在使用节点gm中间件,它具有调整大小和管道调整大小的图像的方法。当我调整图像大小时,我需要缓存它并将图像流回用户。我可以同时做这两件事吗?

要清楚我想要做的是gm(file).resize(...).pipe -> writeStream.pipe -> response。这可能吗?

1 个答案:

答案 0 :(得分:3)

您无法writeStream.pipe(),因为pipe()适用于可读流。你必须有两次管道:

var resize = gm(file).resize(...).stream();
resize('data', function(data) {
    response.write(data);
    write_stream.write(data);
});
resize('end', function(data) {
    response.end(data);
    write_stream.end(data);
});