用户注册后,我使用React作为我的前端为Meteor用户添加了一个新字段:
反应组件:
Accounts.createUser({
email: trimInput(this.state.email),
password: this.state.password,
username: trimInput(this.state.username),
regId: 1, // I need to access this to show/hide fields elsewhere.
});
服务器
// I assume this is how it's done?
Accounts.onCreateUser(function(options, user) {
user['regId'] = options.regId
return user
});
在meteor mongo
我可以看到新添加的字段:"regId": "1"
。大。现在在浏览器控制台中:Meteor.user.find().fetch()
不包括该字段。 Meteor.user().regId
返回undefined
。咦?
接近这样的事情的正确方法是什么?
答案 0 :(得分:2)
我认为以前的答案很好,但你应该改进以便删除
Meteor.subscribe("userData");
在每个控制器中自动发布。
`Meteor.publish(null, function () {
if (this.userId) {
return Meteor.users.find({_id: this.userId},
{fields: {'regId': 1}});
} else {
this.ready();
}
});`
答案 1 :(得分:0)
基于documentation,我需要发布/分发数据:
服务器强>
Meteor.publish("userData", function () {
if (this.userId) {
return Meteor.users.find({_id: this.userId},
{fields: {'regId': 1}});
} else {
this.ready();
}
});
<强>客户端:强>
Meteor.subscribe("userData");
现在您可以访问Meteor.user().regId