Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/mongodb/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Meteor本地服务器可以访问数据库,但客户端可以';T_Javascript_Mongodb_Meteor - Fatal编程技术网

Javascript Meteor本地服务器可以访问数据库,但客户端可以';T

Javascript 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

我是新来的流星。所以我想从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在终端上显示结果,但客户端在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@Khacho
iron:router
只是在引擎盖下做类似的事情。实际上,这取决于以后如何使用这些数据。如果您在模板帮助程序中使用它-您甚至不需要此代码,它们(帮助程序)已经是被动的,并且在您的订阅获取数据后将重新运行它们。