2015-11-30 54 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

相關問題