Javascript Meteor本地服务器可以访问数据库,但客户端可以';T
我是新来的流星。所以我想从mongodb中的本地数据库访问数据。我在client文件夹中有client.jsJavascript Meteor本地服务器可以访问数据库,但客户端可以';T,javascript,mongodb,meteor,Javascript,Mongodb,Meteor,我是新来的流星。所以我想从mongodb中的本地数据库访问数据。我在client文件夹中有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
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/I下,它包含collections.js
Data = new Mongo.Collection('data');
我已经从shell检查了我的mongodb,收集的数据与所需的数据一起出现。我做错了什么?您忘记了客户机上的
Meteor.subscribe()
不是即时操作,发布将花费时间向客户机填充文档
幸运的是,这可以用来确定订阅准备情况
const handle=Meteor.subscribe('Signal');
Tracker.autorun(()=>{
if(handle.ready()){
//订阅已准备就绪
log(Data.find().fetch());
}
});
或者,您可以将onReady
回调作为最后一个参数传递给Meteor.subscribe()
:
流星号订阅('Signal',()=>{
//订阅已准备就绪
log(Data.find().fetch());
});
非常感谢您提供此解决方案。实际上,我用
iron:router
修复了它。但这似乎好得多,因为我不必安装任何额外的软件包。你怎么看?使用软件包还是内置函数更好?Thanks@Khachoiron:router
只是在引擎盖下做类似的事情。实际上,这取决于以后如何使用这些数据。如果您在模板帮助程序中使用它-您甚至不需要此代码,它们(帮助程序)已经是被动的,并且在您的订阅获取数据后将重新运行它们。