我是一名刚开始学习Meteor的新手,正在学习所有东西是如何工作的,请耐心等待。
在一个文件中一切都正常运行,但是在安装iron:router
以实现多页面应用程序后,我意识到最好有单独的客户端和服务器文件。不幸的是,现在我在服务器和客户端之间同步集合时遇到了麻烦。我已经阅读了很多教程,但没有任何作用。
在我的server.js
文件中:
Streams = new Meteor.Collection("streams");
if (Meteor.isServer) {
Meteor.publish('streams', function () {
return Streams.find();
});
}
在我的
client.js
文件中:if(Meteor.isClient) {
Meteor.subscribe("streams");
Template.body.helpers = function(){
return Streams.find();
}
}
调试后,客户端显示“Streams”未定义。发生了什么?如何连接集合?
lib
文件夹应该放在哪里? - Frankielib
目录下的文件总是最先被加载。 - saimeuntlib
文件夹中的文件首先被加载,并且对客户端和服务器都可用。它还建议将与集合相关的代码放在那里。在Github上的Discover Meteor示例应用程序是查看具有源代码的良好结构化Meteor应用程序的好地方,在lib
文件夹中,您将看到一个集合文件夹,其中包含集合声明和CRUD:https://github.com/DiscoverMeteor/Microscope/tree/master/lib - Ahmad Ragabconsole.log(Streams.find().fetch());
的结果是[]
但是当我运行meteor mongo
后检查集合时,它显示集合不为空... - Frankie