在客户端网站上我有一个extraSignupField - >名称。它存储在users.profile.name中。这是代码:
Meteor.startup(function() {
Accounts.ui.config({
passwordSignupFields: 'EMAIL_ONLY'
});
AccountsEntry.config({
homeRoute: '/',
dashboardRoute: '/dashboard',
profileRoute: '/profile',
language: 'de',
showSignupCode: false,
extraSignUpFields: [{
field: "name",
label: "Name",
type: "text",
required: true
}]
});
});
在我运行onCreateUser的服务器站点上,这会被触发,但它只设置那里提到的值。当onCreateUser到位时,不会创建users.profile条目。
这是服务器代码:
Meteor.startup(function() {
AccountsEntry.config({
signupCode: null
});
Accounts.onCreateUser(function (options, user) {
user.username = options.email;
return user;
});
});
我的目标是保留来自users.profile和用户名条目的数据。不幸的是,我在这一点上陷入困境。
非常感谢 迈克尔
答案 0 :(得分:2)
当您编写自己的Accounts.onCreateUser时,它会覆盖默认值。在默认情况下,options.profile将复制到user.profile。您可以通过在您自己的函数版本中创建此副本来恢复默认行为。您可以在the docs中看到这一点。
Accounts.onCreateUser( function (options, user) {
if (options.profile) user.profile = options.profile;
user.username = options.email;
return user;
}