【问题标题】:How do I extend User model in Meteor?如何在 Meteor 中扩展用户模型?
【发布时间】:2016-11-05 10:38:52
【问题描述】:

我一直在研究这个问题,但找不到明确的解释。我的流星应用程序安装了用户帐户,并且登录/注销一切正常。但是,我想为我的用户添加一些可选字段,例如年龄、性别等。我该怎么做呢?请注意,我是 Meteor 的新手,所以请明确一点。

【问题讨论】:

标签: javascript class meteor


【解决方案1】:

要在useraccounts 包提供的用户注册表中添加更多字段,请参阅官方GuideForm Fields Configuration 部分

假设您想在注册表单中添加一个gender 字段,您可以这样做

AccountsTemplates.addField({
  _id: "gender",
  type: "select",
  displayName: "Gender",
  select: [
    {
      text: "Male",
      value: "male",
    },
    {
      text: "Female",
      value: "female",
    },
  ],
});

【讨论】:

    【解决方案2】:

    您要查找的文档是Meteor.users 集合。它位于 http://docs.meteor.com 的“完整 API”下,这可能解释了您错过它的原因。

    用户文档可以包含您想要存储的有关用户的任何数据。 Meteor 对以下字段进行了特殊处理:

    • 用户名:标识用户的唯一字符串。
    • 电子邮件:[...]
    • createdAt:创建用户文档的日期。
    • profile:用户可以使用任何数据创建和更新的对象。除非您在 Meteor.users 集合上有拒绝规则,否则不要在个人资料中存储您不希望用户编辑的任何内容。

    [...]

    默认情况下,当前用户的用户名、电子邮件和个人资料会发布到客户端。您可以通过以下方式为当前用户发布其他字段:

    // server
    Meteor.publish("userData", function () {
      if (this.userId) {
        return Meteor.users.find({_id: this.userId},
                                 {fields: {'other': 1, 'things': 1}});
      } else {
        this.ready();
      }
    });
    
    // client
    Meteor.subscribe("userData");
    

    【讨论】:

    • 我认为在这种情况下使用null 发布者会更好。请参阅上面的链接问题。
    【解决方案3】:

    检查简单的模式包,这个包有一个例子

    https://atmospherejs.com/aldeed/simple-schema

    【讨论】:

      猜你喜欢
      • 2014-06-16
      • 1970-01-01
      • 1970-01-01
      • 2011-07-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-10-12
      相关资源
      最近更新 更多