我試圖從Twitter的Streaming API管道()數據使用現代Node.js流的文件。我正在使用我編寫的名爲TweetPipe的庫,該庫利用了EventStream和Request。Node.js請求流結束/失速時,管道可寫入文件流
設置:
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);
管道向文件中寫入一個鳴叫,然後流結束默默:
tp.stream('statuses/filter', { track: ['bieber'] })
.pipe(tp.stringify())
.pipe(file);
誰能告訴我爲什麼會發生這種情況?
謝謝,@dominic。我會嘗試更多的日誌/調試。還有什麼令我費解的是,爲什麼這會發生在管道到文件但不是標準輸出時......儘管我想這表明它可能是發送'結束'的文件流。如果我仍然無法弄清楚,我會把精力集中在一起。 –
好吧,我正在做點什麼。我正在使用直通流來過濾發出的消息類型:https://github.com/peeinears/tweet-pipe/blob/master/index.js#L125。當我通過流寫入函數添加this.resume()時,事情似乎有效。 –