1

以下代码不会在每次找到推文时更新数据库 - 它会静默挂起,不会向数据库添加推文。

如果从浏览器中的 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);
      });
   });
}
4

1 回答 1

1

在 Meteor 中,必须始终在闭包Collection.insert内调用。Fiber()

Fiber(function() {
    Tweets.insert({text: tweerp.text, screen_name: tweerp.user.screen_name, profile_image: tweerp.user.profile_image_url});
}).run();
于 2012-10-29T05:52:45.473 回答