我正在学习流星,同时尝试使用TwitchTV API。流星 - 服务器端API调用并每分钟插入到mongodb中
我现在的目标是每分钟调用一次TwitchAPI,然后将部分json对象插入到mongo数据库中。由于MongoDB匹配_id
和Twitch使用_id
作为它的关键,我希望后续插入将更新现有记录或创建一个新的_id
不存在。
调用和插入(至少是最初的一个)似乎工作正常。但是,我似乎无法使Meteor.setTimeout()
函数正常工作。该电话会在我启动应用程序时发生,但不会每分钟持续发生。
这是我在.js
。文件在我的服务器文件夹中:
Meteor.methods({
getStreams: function() {
this.unblock();
var url = 'https://api.twitch.tv/kraken/streams?limit=3';
return Meteor.http.get(url);
},
saveStreams: function() {
Meteor.call('getStreams', function(err, res) {
var data = res.data;
Test.insert(data);
}
}
});
Deps.autorun(function(){
Meteor.setTimeout(function(){Meteor.call('saveStreams');}, 1000);
});
任何帮助或建议表示赞赏。
我想你需要使用[Meteor.setInterval](http://docs.meteor.com/#meteor_setinterval)而不是Meteor.setTimeout这个用例。 – richsilv 2014-09-26 04:22:16
Deps.autorun不应该用于服务器端,而应该使用Meteor.startup。 – saimeunt 2014-09-26 09:12:54
@richsilv这解决了我的问题。不知道我错过了这个功能。非常感谢! – tehaaron 2014-09-27 03:16:55