Javascript Meteor:在CreateCount上添加字段

Javascript Meteor:在CreateCount上添加字段,javascript,mongodb,meteor,Javascript,Mongodb,Meteor,我正在尝试使用Meteor角色包: 在用户模型中创建一个新字段 创建用户没有问题,但是我试图定义的“角色”字段没有创建。我也可以在其中添加“个人资料”和详细信息。但由于某些原因,我无法创建角色字段。这是我的表格: Template.signup.events({ 'submit #signup-form' : function(e, t) { e.preventDefault(); var roles = ['admin'], email = t.find('#ema

我正在尝试使用Meteor角色包: 在用户模型中创建一个新字段

创建用户没有问题,但是我试图定义的“角色”字段没有创建。我也可以在其中添加“个人资料”和详细信息。但由于某些原因,我无法创建角色字段。这是我的表格:

Template.signup.events({
 'submit #signup-form' : function(e, t) {
   e.preventDefault();
   var roles = ['admin'],
       email = t.find('#email').value,
       password = t.find('#password').value;

   Accounts.createUser({email: email, password : password, roles: roles}, function(err){
       if (err) {
         alert("User Not Added")
       } else {
         console.log("User Added.")
       }

   });

 }
});
最终,我需要将其发布到客户端,但目前我只希望该字段显示在MongoDb中,而事实并非如此

三件事:

我觉得上面的代码应该可以工作,但我显然遗漏了一些东西 在包文档中,它提到了Roles.addUsersToRoles,我 我试过了,但运气不好 或者,我是否需要在记录创建后更新它? 我确实进入了数据库,手动添加了字段和相关字符串,用$set对其进行了更新,结果成功了。但是从形式本身来看,没有运气

任何指点都将不胜感激。谢谢。

Accounts.createUser函数仅将用户名、电子邮件、密码和配置文件作为用户对象的参数。因此,要向新用户对象添加另一个字段,需要在第二步中添加它:

var uid = Accounts.createUser({email: email, password: password});
Meteor.users.update(uid, {$set: {roles: roles}});
Accounts.createUser函数仅将用户名、电子邮件、密码和配置文件作为用户对象的参数。因此,要向新用户对象添加另一个字段,需要在第二步中添加它:

var uid = Accounts.createUser({email: email, password: password});
Meteor.users.update(uid, {$set: {roles: roles}});
该函数只允许您通过profile选项添加任意用户属性,这些属性最终将存储在mongo中。这就是Meteor忽略角色的原因:角色是Accounts.createUser调用的一部分

meteor roles包确实将直接分配给用户的角色列表存储在用户集合中,但这几乎只是一个实现细节,您最好还是坚持meteor roles为向角色添加用户提供的API:

Roles.addUsersToRoles,[]

传递给Roles.addUsersToRoles的用户ID是Accounts.createUser在服务器上调用时返回的值,您可能希望在服务器上执行此操作,因为这样会更安全。

此函数仅允许您通过配置文件选项添加任意用户属性,这些属性最终会存储在mongo中。这就是Meteor忽略角色的原因:角色是Accounts.createUser调用的一部分

meteor roles包确实将直接分配给用户的角色列表存储在用户集合中,但这几乎只是一个实现细节,您最好还是坚持meteor roles为向角色添加用户提供的API:

Roles.addUsersToRoles,[]


传递给Roles.addUsersToRoles的userId是Accounts.createUser在服务器上调用时返回的值,您可能希望在服务器上执行此操作,因为这样会更安全。

说得很好。非常感谢。对于遵循这一点的任何人,不要在Roles.addUserToRoles上使用userId作为变量名。go oleg并没有对我说,我这么做只是因为它有意义。然而,这是保留在某个地方,即使我把一切都设置好了,它也无法工作,直到我更改了名称,@go-oleg就在这里。github repo中的示例应用程序表明了这一点:说得很好。非常感谢。对于遵循这一点的任何人,不要在Roles.addUserToRoles上使用userId作为变量名。go oleg并没有对我说,我这么做只是因为它有意义。然而,这是保留在某个地方,即使我把一切都设置好了,它也无法工作,直到我更改了名称,@go-oleg就在这里。github repo中的示例应用程序显示了这一点:Hubert OG您是一名芭蕾舞者。我到处都能看到你的答案,谢谢。如果用户愿意,我将使用此信息允许用户添加到他们的个人资料中。我到处都能看到你的答案,谢谢。我将使用此信息允许用户添加到他们的个人资料,如果他们愿意的话。