Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/perl/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js请求流在通过管道传输到可写文件流时结束/暂停_Node.js_Twitter_Stream_Pipe - Fatal编程技术网

Node.js请求流在通过管道传输到可写文件流时结束/暂停

Node.js请求流在通过管道传输到可写文件流时结束/暂停,node.js,twitter,stream,pipe,Node.js,Twitter,Stream,Pipe,我正在尝试使用modern Node.js Streams将()数据从Twitter的流API传输到一个文件。我正在使用一个我编写的名为的库,它利用和 设置: var TweetPipe = require('tweet-pipe') , fs = require('fs'); var tp = new TweetPipe(myOAuthCreds); var file = fs.createWriteStream('./tweets.json'); 至标准工程和溪流的管道保持开放: t

我正在尝试使用modern Node.js Streams将()数据从Twitter的流API传输到一个文件。我正在使用一个我编写的名为的库,它利用和

设置:

var TweetPipe = require('tweet-pipe')
  , fs = require('fs');

var tp = new TweetPipe(myOAuthCreds);
var file = fs.createWriteStream('./tweets.json');
至标准工程和溪流的管道保持开放:

tp.stream('statuses/filter', { track: ['bieber'] })
  .pipe(tp.stringify())
  .pipe(process.stdout);
管道到文件写入一条tweet,然后流以静默方式结束:

tp.stream('statuses/filter', { track: ['bieber'] })
  .pipe(tp.stringify())
  .pipe(file);

有人能告诉我为什么会发生这种情况吗?

很难说从你这里的情况来看,这条河流似乎在你预料之前就被清理干净了。这可以通过多种方式触发,请参见此处

一条流可以发出“结束”,然后某个东西就停止了

虽然我怀疑这是个问题,但有一件事让我担心 发出错误后应调用destroy

我通常会通过添加日志语句来调试这样的问题,直到我能看到什么事情没有发生

你能发布一个可以运行以复制的脚本吗?
(对于额外的要点,请包括一个package.json,用于指定依赖项:)

根据,您应该在tp创建的流上创建一个错误处理程序。

谢谢,@dominic。我将尝试更多的日志记录/调试。仍然让我困惑的是,为什么在管道传输到文件而不是标准输出时会发生这种情况。。。虽然我猜这表明可能是文件流发出了“结束”。如果我还是搞不懂的话,我会把要点放在一起。好吧,我有话要说。我正在使用直通流过滤出发出的消息类型:。当我在through stream write函数的末尾添加this.resume()时,一切似乎都正常。