节点js:pipe道数据到多个stream

我正在使用节点gm中间件,它有resize和pipe道resize的图像的方法。 当我调整图像大小时,我需要将其caching并将图像传回给用户。 我可以同时做这两个吗?

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

您不能执行writeStream.pipe()因为pipe()用于可读stream。 你必须有两次这样的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); });