gpt4 book ai didi

javascript - Accounts.onCreateUser 没有将字段添加到 Meteor 的用户集合

转载 作者:行者123 更新时间:2023-11-30 17:05:10 26 4
gpt4 key购买 nike

我想向 Meteor 的用户集合中添加一个新字段:

server/fixtures.js:

Accounts.onCreateUser(function(options, user) {
user.role = 'Student'
// We still want the default hook's 'profile' behavior.
if (options.profile)
user.profile = options.profile;
return user
})

但是当我执行 Meteor.users.find().fetch(); 时:

Object
_id: "7zLDKQE4ACJCfeEhr"
username: "alex"
__proto__: Object

我没有看到该字段。

在模板中也不起作用:

文档/document_page.js:

  users: function() {
var users = _.map(Meteor.presences.find().fetch(), function(user) {
return Meteor.users.findOne({_id: user.userId})
})

return users
},

documents/user.html

<template name="user">
<li class="clearfix">
<img src="/avatar.png"/>
<div class="user-info">
<p>{{userId}}</p>
<p>{{username}}</p>
<p>{{role}}</p>
</div>
</li>
</template>

只显示用户名。可能是什么问题?

最佳答案

您需要发布自定义字段。来自文档:

By default the server publishes username, emails, and profile (writable by user). See Meteor.users for more on the fields used in user documents.

最简单的方法就是使用 null 的名称发布,这将自动发布文档而不需要相应的 Meteor.subscribe:

Meteor.publish(null, function() {
return Meteor.users.find(this.userId, {fields: {role: 1}});
});

在这种情况下,我们将发布 role 字段,该字段将与已为当前用户发布的默认字段合并。

关于javascript - Accounts.onCreateUser 没有将字段添加到 Meteor 的用户集合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28183458/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com