客户端无法访问Meteor MongoDb集合

时间:2015-10-08 07:46:06

标签: node.js mongodb meteor

我创建了一个应该可以被客户端和服务器端访问的集合。但是当我尝试在浏览器中使用它时,它给了我未定义的。

var lists = new Meteor.Collection("Lists");
//lists.insert({Category:"DVDs", items: {Name:"Mission Impossible",Owner:"me",LentTo:"Alice"}});
if (Meteor.isClient) {
  // counter starts at 0
  Session.setDefault('counter', 0);

  Template.hello.helpers({
    counter: function () {
      return Session.get('counter');
    }
  });

  Template.hello.events({
    'click button': function () {
      // increment the counter when button is clicked
      Session.set('counter', Session.get('counter') + 1);
    }
  });
}

if (Meteor.isServer) {
  Meteor.startup(function () {
    // code to run on server at startup
  });
}

现在,当我在客户端浏览器控制台中使用列表时,它给了我未定义的内容。

2 个答案:

答案 0 :(得分:1)

定义不带var关键字的集合。它将使整个应用程序中的全局变量可访问。并将集合定义为大写:

Lists = new Meteor.Collection("lists");

这是一个很好的做法。

答案 1 :(得分:1)

如果您已删除autopublish个套餐,则应在客户端

订阅集合
Meteor.subscribe("lists");

在服务器端发布

Meteor.publish("lists", function () {
  return Lists.find({});
});

并使用小写字母表示集合名称。