2015-11-30 55 views
0

这里是我的routes.js.count()为什么打破Meteor?

Router.route('/database_setup', function() { 

    //Subscribe and stuff 
    Downloads = new Mongo.Collection('downloads'); 
    Meteor.subscribe('downloads'); 

    var downloads = { 
     movies : Downloads.find({type : 'movies'}) 
    }; 

    if (downloads.movies.count() > 0) { // BREAKS HERE 

    } 

    this.render('database_setup'); 
}); 

如果我删除我已标记的地方,一切工作正常。否则,我得到以下错误:

enter image description here

奇怪的是,呼吁downloads.movies.count()在控制台工作正常。

这是怎么回事?

+0

你有另外一个'new Mongo.Collection('downloads');'在里面的文件吗? – Ivan

回答

4

Downloads = new Mongo.Collection('downloads');应该在某个地方,它只会被调用一次。您创建一次新的Mongo Collection并多次订阅它。

标准做法是在您组织收藏的地方有一个/lib文件夹。

+1

第一次加载应用程序时可能会有效。 永远不要在路线中定义新的集合。 新集合应该在路由声明之外。否则,每次调用该路由时都会调用它(这就是为什么会出现此错误) – Felix

+0

对!旧习难改。谢谢 :) – styke

相关问题