创建模型,订阅并将其数据发布到客户端的示例(Meteor)

时间:2012-11-19 12:45:28

标签: meteor

我有Rails和MVC框架的背景,所以我不完全理解创建模型,发布数据并让用户订阅它的想法。

我一直在检查Meteor's docs,但我仍然对某些事情感到困惑(例如,订阅和发布声明应该在哪个文件中?模板声明应该在哪个文件中?)

如果有人能给我一个可行的例子,我会很高兴。

4 个答案:

答案 0 :(得分:2)

最好的起点是Meteor自己的示例应用程序。您可以从examples page预览它们(并获取有关如何在本地计算机上安装它们的说明)。

如果你想浏览一些代码,请查看他们的Gitgub回购。 All Tomorrow's Parties演示是一个相当全面的示例,它显示了用户身份验证,选择性发布,客户端和服务器代码等。

请查看leaderboard demo以获取一个非常简单的“hello world”类型的示例。

答案 1 :(得分:2)

以下是一个例子:

// 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;
  }
});

答案 2 :(得分:0)

尝试:

meteor create --example parties

并浏览代码。 事情是这样的:发布你返回的内容可以作为模型访问。

答案 3 :(得分:0)

这个问题似乎是最古老的,但只是为了保持良好的做法。

首先在/lib文件夹中创建一些Collections.js

还要确保删除自动发布包并且不安全。 在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 

所以我认为这是一个很好的做法,对新人来说是一个很好的建议