我在过去几周一直在使用节点流,我发现使用一些现成的流模块(来自github / substack,github / mikeal和github / Raynos)比直接使用流方法更容易
有一件事可以逃避我:
当您知道没有更多数据到来时,从可读流中提取数据的最简单方法是什么?
我认为最简单的方法是将可读流传输到可写流中 将公开一个方法(或属性),它返回已写入其中的所有数据。
以下是我将如何使用它来提取在生成的stderr中捕获的所有数据的示例:
var spawn = require('child_process').spawn,
proc = spawn('some_command'),
plug = require('the-stream-module-i-am-looking-for');
buffer = plug.buffer();
proc.stderr.pipe(buffer);
proc.on('exit', function() { console.log(buffer.getdata()); }
我查看了来自Raynos/buffer-stream的mikeal/morestreams BufferedStream,但他们的目标似乎不同。
我知道捕获所有这些数据并不理想 - 偶尔会有必要。 我也明白,我可以实现我想写的简单代码,或者
但是上面的所有内容看起来都像是一个代码,现在必须由成千上万的人编写成千上万次。希望其中一个将这几行代码抽象为单个模块函数。或者有一些我可能错过的更简单的东西 - 正如我所提到的,我仍然不相信我理解nodejs流。