如何在流打开时保持节点应用程序运行?

时间:2013-10-28 04:35:46

标签: javascript node.js stream

我想知道在可读流关闭之前保持Node应用程序运行的好方法是什么。所以在一个简单的例子中如下:

var tcpVideoStream = new TcpVideoStream(options);
var writeStream = fs.createWriteStream(options.fileName);
tcpVideoStream.pipe(writeStream);

如何保持我的应用程序运行,以便继续将流数据写入文件,直到可读流(在本例中为tcpVideoStream)关闭?即发出'结束'或'关闭'。

谢谢!

2 个答案:

答案 0 :(得分:1)

在数据完全传输之前,您的应用程序不会关闭。只有当可读流仍然存在时,您的应用程序才会关闭,例如没有data事件监听器,或者您没有调用resume()(如果它已经暂停)。使用pipe()就像添加data侦听器一样。

例如,这将退出而没有输出。

var fs = require('fs');

var read = fs.createReadStream('./src');
var write = fs.createWriteStream('./dest');
read.pause();

read.on('data', function(chunk) {
  console.log(chunk);
});

答案 1 :(得分:0)

您可能需要查看此页面。 {for WriteStreams}

http://nodejs.org/docs/v0.6.18/api/stream.html#stream_stream_pipe_destination_options

基本上使用{end:false}会使写入流保持打开状态,以便您可以分派另一个结束事件。