我是流星的新手。所以我想从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,并且收集数据与所需数据一起出现。我做错了什么?
答案 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());
});