Meteor本地服务器可以访问数据库,但客户端不能

时间:2017-10-03 09:38:24

标签: javascript mongodb meteor

我是流星的新手。所以我想从mongodb中的本地数据库访问数据。我在客户端文件夹中有client.js

Meteor.subscribe('Signal');
console.log(Data.find().fetch());

我的服务器目录中有main.js

console.log(Data.find());

Meteor.publish('Signal', function() {
   return Data.find().fetch();
});

服务器的console.log在终端显示结果,但客户端没有显示chrome控制台的任何内容

在lib /我有collectons.js它包含

Data = new Mongo.Collection('data');

我已经从shell检查了我的mongodb,并且收集数据与所需数据一起出现。我做错了什么?

1 个答案:

答案 0 :(得分:1)

您忘记了客户端上的Meteor.subscribe()不是立即操作,并且发布会花时间将文档填充到客户端。

幸运的是,Meteor.subscribe() returns a subscription handle可用于确定订阅准备情况。

const handle = Meteor.subscribe('Signal');
Tracker.autorun(() => {
  if (handle.ready()) {
    // subscription is ready
    console.log(Data.find().fetch());
  }
});

或者,您可以将onReady回调作为Meteor.subscribe()的最后一个参数传递:

Meteor.subscribe('Signal', () => {
  // subscription is ready
  console.log(Data.find().fetch());
});