我有 Rails 和 MVC 框架的背景,所以我不完全理解创建模型、发布数据并让用户订阅它的想法。
我一直在检查Meteor 的文档,但我仍然对某些事情感到困惑(例如,订阅和发布声明应该放在哪个文件中?模板声明应该放在哪个文件中?)
如果有人能给我一个可行的例子,我会很高兴。
我有 Rails 和 MVC 框架的背景,所以我不完全理解创建模型、发布数据并让用户订阅它的想法。
我一直在检查Meteor 的文档,但我仍然对某些事情感到困惑(例如,订阅和发布声明应该放在哪个文件中?模板声明应该放在哪个文件中?)
如果有人能给我一个可行的例子,我会很高兴。
最好的起点是 Meteor 自己的示例应用程序。您可以从示例页面预览它们(并获取有关如何在本地计算机上安装它们的说明)。
如果您想浏览一些代码,请查看他们的 Gitgub 存储库。All Tomorrow's Party演示是一个相当全面的示例,它显示了用户身份验证、选择性发布、客户端和服务器代码等。
查看排行榜演示,了解一个非常简单的“hello world”类型示例。
这是一个例子:
// Server publish the data
if(Meteor.isServer) {
Meteor.publish("allUserData", function () {
return Meteor.users.find();
});
}
// Client subscribe the data
if(Meteor.isClient) {
Meteor.subscribe('allUserData');
}
// Open bar, everybody can call all mongodb request
Meteor.users.allow({
insert: function () {
return true;
},
update: function () {
return true;
},
remove: function () {
return true;
}
});
尝试:
meteor create --example parties
并浏览代码。事情是当你这样做的时候:发布你返回的东西可以作为模型访问。
这个问题似乎是最古老的,但只是为了保持良好的做法。
首先在/lib
文件夹上创建一些Collections.js
并确保您删除 Autopublish Package 和不安全的。并在里面Collection.js
放置下一个代码。
Example = new Mongo.Collection('Example');
if(Meteor.isClient) {
Meteor.subscribe('Example');
}
为什么在lib
文件夹上?
因为 lib 目录中的文件将首先加载,所以我们确保我们在两边都有Server/client
集合
现在在服务器端,我们制作发布功能。
//Server.js
Meteor.publish("Promociones", function () {
return Example.find();
});
我再次回答这个问题,因为我意识到我正在使用
Example = new Mongo.Collection('Example'); //on both server.js and client.js
所以我认为这是一个很好的做法,也是对新手的一个很好的建议