2012-10-27 31 views
1

下面的代碼不會每次發現tweet時更新數據庫 - 它靜靜地掛起,不向數據庫添加推文。流星插入無形和無聲地掛起

如果從瀏覽器的JS控制檯手動添加推文到數據庫,它顯示得很好,但是沒有推文被自動添加到數據庫中。

Tweets = new Meteor.Collection("tweets"); 

if (Meteor.isClient) { 
    Template.kildeer.tweets = function() { 
     return Tweets.find({}); 
    }; 
} 

if (Meteor.isServer) { 
    Meteor.startup(function() { 
    var require = __meteor_bootstrap__.require, 
     Twit = require('twit') 
     , T = new Twit({ 
      consumer_key: 'blahblah', 
      consumer_secret: 'blahblah', 
      access_token: 'blahblah', 
      access_token_secret: 'blahblah' 
     }); 

     var stream = T.stream('statuses/filter', { track: ['bing', 'google', 'microsoft'] }) 

     stream.on('tweet', function (tweerp) { 
      var id; 
      console.log(tweerp.text); 
      id = Tweets.insert({text: tweerp.text, screen_name: tweerp.user.screen_name, profile_image: tweerp.user.profile_image_url}); 
      console.log(id); 
     }); 
    }); 
} 

回答

1

流星,Collection.insert必須總是Fiber()封閉的內部調用。

Fiber(function() { 
    Tweets.insert({text: tweerp.text, screen_name: tweerp.user.screen_name, profile_image: tweerp.user.profile_image_url}); 
}).run();