Javascript 为什么.count()会破坏流星?

Javascript 为什么.count()会破坏流星?,javascript,meteor,Javascript,Meteor,这是我的routes.js Router.route('/database_setup', function () { //Subscribe and stuff Downloads = new Mongo.Collection('downloads'); Meteor.subscribe('downloads'); var downloads = { movies : Downloads.find({type : 'movies'})

这是我的
routes.js

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');
});
如果我把标记的地方移走,一切都会好起来。否则,我将得到以下错误:

奇怪的是,在控制台中调用
downloads.movies.count()
可以正常工作


这是怎么回事

Downloads=newmongo.Collection('Downloads')应该位于只调用一次的位置。您可以创建一次新的Mongo集合并多次订阅它


标准做法是使用一个
/lib
文件夹来组织收藏。

下载=新的Mongo.Collection('Downloads')应该位于只调用一次的位置。您可以创建一次新的Mongo集合并多次订阅它


标准做法是使用一个
/lib
文件夹来组织您的收藏。

是否有另一个带有
新Mongo.Collection('downloads')的文件在其中?您是否有另一个带有
new Mongo.Collection('downloads')的文件在其中?它可能会在您第一次加载应用程序时工作。切勿在路由内定义新集合。新集合应在路由声明之外。否则,每次调用该路由时都会调用它(这就是为什么会出现此错误的原因)!旧习难改。谢谢:)它可能会在你第一次加载应用时工作。切勿在路由内定义新集合。新集合应在路由声明之外。否则,每次调用该路由时都会调用它(这就是为什么会出现此错误的原因)!旧习难改。谢谢:)