【问题标题】:Why does .count() break Meteor?为什么 .count() 会破坏 Meteor?
【发布时间】:2015-12-01 05:44:53
【问题描述】:

这是我的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() 工作正常。

这里发生了什么?

【问题讨论】:

  • 你还有另一个文件里面有new Mongo.Collection('downloads');吗?

标签: javascript meteor


【解决方案1】:

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

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

【讨论】:

  • 它可能会在您第一次加载应用程序时工作。永远不要在路由中定义新集合。新集合应该在路由声明之外。否则,每次调用该路由时都会调用它(这就是您收到此错误的原因)
  • 对!旧习难改。谢谢:)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2015-03-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-08-03
相关资源
最近更新 更多