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

How can I keep node application running while stream is open?

本文关键字:节点 应用程序 运行      更新时间:2023-09-26

我想知道保持 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} 保持写入流打开,以便您可以调度另一个结束事件。