我想知道保持 Node 应用程序运行直到可读流关闭的好解决方案是什么。所以在一个简单的例子中,比如这样:
var tcpVideoStream = new TcpVideoStream(options);
var writeStream = fs.createWriteStream(options.fileName);
tcpVideoStream.pipe(writeStream);
如何保持我的应用程序运行,以便它继续将流数据写入文件,直到可读流(在本例中为 tcpVideoStream)关闭?即发出"结束"或"关闭"。
谢谢!
在数据完全通过管道传输之前,应用程序不会关闭。仅当可读流仍然存在时,例如没有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);
});
你可能想看看这个页面。{用于写入流}
http://nodejs.org/docs/v0.6.18/api/stream.html#stream_stream_pipe_destination_options
基本上使用 {end: false} 保持写入流打开,以便您可以调度另一个结束事件。