希望设置默认用户配置文件数据OnCreateUser

时间:2014-05-22 15:52:03

标签: meteor

创建新用户时,我想在个人资料中添加一些属性。我在用户更改设置时使用收藏更新在应用内进行此操作,但似乎无法在新用户注册时设置默认值。

这是我的服务器代码:

userDefaults = (options, user) ->
    user.zipCode = 94582
    user.temperature = "Farenheit"
    user.city = "San Ramon"
    user.timeZone = "America/Los_Angeles"
    # Include the default profile info.
    user.profile = options.profile if options.profile
    console.log "added default #{options.profile} for #{user.profile}."
    user

Accounts.onCreateUser(userDefaults)

注意:控制台日志将options.profile和user.profile都返回为undefined。

我也试过以下内容:

userDefaults = (options, user) ->
    user.profile = options.profile if options.profile
    user.profile.zipCode = 94582
    user.profile.temperature = "Farenheit"
    user.profile.city = "San Ramon"
    user.profile.timeZone = "America/Los_Angeles"
    console.log "added default #{options.profile} for #{user.profile}."
    user

Accounts.onCreateUser(userDefaults) 

由于个人资料未定义,我收到此错误:"异常调用方法' createUser' TypeError:无法设置属性' zipCode'未定义"

感谢您的帮助!!

1 个答案:

答案 0 :(得分:1)

我在SE上找到了这个答案:Can't add user attribute using Accounts.onCreateUser

它点燃了道路。这是我最后的工作咖啡代码(服务器):

Accounts.onCreateUser( (options, user) ->
    options.profile = {} unless options.profile
    options.profile.zipCode = 94582
    options.profile.temperature = "Farenheit"
    options.profile.city = "San Ramon"
    options.profile.timeZone = "America/Los_Angeles"
    user.profile = options.profile if options.profile
    user)