2015-09-26 52 views
0

我试图在创建时向用户添加一个字段,分数。在创建新用户时向用户文档添加字段(流星)

我把这个代码在服务器挂钩:

Accounts.onCreateUser(function(options, user) { 
     user.score = 1; 
     return user; 
}); 

但是当我尝试Meteor.user()在控制台中,我没有看到比分的对象。

+0

是否使用了'useraccounts:core'包? – challett

+0

我正在使用accounts-password和accounts-ui – gustavla

+0

我有一个解决方案,如果您打算使用架构包作为使用onCreateUser挂钩的替代方案,我可以发布解决方案。我以前在使用这个钩子时遇到了问题 – challett

回答

0

你按照正确的方法插入额外的密钥,使用onCreateUser是正确的。

但是,默认情况下Meteor不会发布用户对象中的所有密钥。在客户端上,您只能看到_id,emailsprofile。如果你想看到score在客户端上您可以将它填满到的个人资料,而不是在用户文档的根(最简单):

user.profile.score = 1; // in onCreateUser 

或包括在服务器上的用户发布了比分的关键:

Meteor.publish('me',function(){ 
    return Meteor.find({ _id: this._id },{ fields: { profile: 1, emails: 1, score: 1 }}); 
}); 

并订阅它在客户端上:

Meteor.subscribe('me');