Accounts.createUser 不保存个人资料
Accounts.createUser doesn't save profile
我的 server/fixtures.js
文件中有以下代码:
var userId = Accounts.createUser({
username: "tester",
email: "a@b.com",
password: "foobar",
profile: { name: "Max" }
});
var user = Meteor.users.findOne({_id: userId});
console.log(user.profile.name);
现在,当我 运行 meteor
时,它会记录 undefined
。我做错了什么?
我认为您需要使用 Meteors Publications & Subscriptions。检查这个 link
获取更多信息。
示例:
if (Meteor.isServer){
Meteor.publish('userdata', function() {
if(!this.userId) return null;
return Meteor.users.find( this.userId );
});
}
if (Meteor.isClient){
Meteor.subscribe('userdata');
console.log(Meteor.user());
}
我很确定我在某个地方定义了一个 Accounts.onCreateUser 回调来负责这个。我的错!
因此,问题是 console.log 在服务器上不可用(此文件根据 Meteor 目录约定运行。)。如果你想登录到服务器控制台,你可以使用 Meteor._debug()
,它的工作原理与 console.log 相同。您可能还想考虑将代码包装在 Meteor.startup(function() {});
块中,以便它在服务器启动后立即运行。
我的 server/fixtures.js
文件中有以下代码:
var userId = Accounts.createUser({
username: "tester",
email: "a@b.com",
password: "foobar",
profile: { name: "Max" }
});
var user = Meteor.users.findOne({_id: userId});
console.log(user.profile.name);
现在,当我 运行 meteor
时,它会记录 undefined
。我做错了什么?
我认为您需要使用 Meteors Publications & Subscriptions。检查这个 link 获取更多信息。
示例:
if (Meteor.isServer){
Meteor.publish('userdata', function() {
if(!this.userId) return null;
return Meteor.users.find( this.userId );
});
}
if (Meteor.isClient){
Meteor.subscribe('userdata');
console.log(Meteor.user());
}
我很确定我在某个地方定义了一个 Accounts.onCreateUser 回调来负责这个。我的错!
因此,问题是 console.log 在服务器上不可用(此文件根据 Meteor 目录约定运行。)。如果你想登录到服务器控制台,你可以使用 Meteor._debug()
,它的工作原理与 console.log 相同。您可能还想考虑将代码包装在 Meteor.startup(function() {});
块中,以便它在服务器启动后立即运行。