【问题标题】:How can I add a user.profile when creating a user with the accounts-ui package?如何在使用 accounts-ui 包创建用户时添加 user.profile?
【发布时间】:2014-10-08 19:16:05
【问题描述】:

如何将以下代码添加到 accounts-ui 包中,以便在创建用户时创建配置文件?

    if (options.profile) 
    {
      user.profile = options.profile;
    }

如果无法更改 accounts-ui 表单,是否可以在创建帐户时向配置文件添加一个空对象?

可能是这样的:

user.profile = {};

我在“packages”目录中寻找这个包,但没有找到,为什么没有?我认为这段代码很容易用于任何必要的修改。

任何关于这方面的建议都会很棒。

提前致谢:)

【问题讨论】:

    标签: javascript meteor


    【解决方案1】:

    无需向任何包添加任何内容。 Accounts 包中提供了一个挂钩,该挂钩在创建用户时运行。 Accounts.onCreateUser 您可以使用它来填写用户文档的默认值。您以希望保存的状态返回用户对象。

    它应该在服务器上运行。例如,创建文件 server/usersetup.js 并添加以下代码。

    Accounts.onCreateUser(function(options, user) {
        if (! options.profile) options.profile = {};
        options.profile.artist = true;
        options.profile.reputation = 100;
        options.profile.someObject = {a: [], b: {}};
    
        user.profile = options.profile;
        return user;
    });
    

    Here's the documentation.

    【讨论】:

    • 太好了,谢谢。我会去阅读帮助程序以获取更多信息。如果我创建了一个包含名字和姓氏的个人资料,但后来想添加地址和邮政编码,这会影响他们个人资料中只有名字和姓氏的用户吗?我假设有一种方法可以将这些额外的配置文件元素添加到具有仅包含 firstName 和 lastName 元素的配置文件的用户。再次感谢!
    • 您可以在需要时向 mongoDB 文档添加字段。结构不像 SQL 那样死板。您不需要添加像 {firstname: ""} 这样的空占位符,并且您可以将地址和邮政编码值添加到带有或不带有名称字段的文档中。 IMO 具有一致结构的主要原因是减少在显示内容时检查未定义的值。或者,如果用户想要添加地址,您可以强制用户提供名称,并使用表单验证和 Meteor.methods。我想说了解这一点的最佳资源是“发现流星”
    • 非常感谢您的回复。我需要进一步研究,再次感谢:)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-08-25
    • 1970-01-01
    • 1970-01-01
    • 2019-07-12
    • 2020-07-16
    • 2019-01-04
    • 2016-05-20
    相关资源
    最近更新 更多