Node.js请求流在通过管道传输到可写文件流时结束/暂停
我正在尝试使用modern Node.js Streams将()数据从Twitter的流API传输到一个文件。我正在使用一个我编写的名为的库,它利用和 设置: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
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()时,一切似乎都正常。