流星:onUserCreation

5

我很新于Meteor,已经遇到了许多问题....或许有人可以解释一下以下内容:

我正在使用Josh Owen entry package来进行Facebook、Google等登录。最终,我想向用户集合中添加更多字段。但是现在,我只是在测试并输出日志到控制台中:

Accounts.onCreateUser(function(options, user) {
    console.log(user);
});

控制台显示以下错误信息:

I20141217-13:38:57.958(1)? { createdAt: Wed Dec 17 2014 13:38:57 GMT+0100 (CET),
I20141217-13:38:58.046(1)?   _id: 'iq6B8PqDxfg8MntwB',
I20141217-13:38:58.047(1)?   services:
I20141217-13:38:58.047(1)?    { facebook:
I20141217-13:38:58.047(1)?       { accessToken: 'CAAKjw0F4gZB0BAC1pAoHk4NnILGw3KGSYThe58epe8xK7FXcXZBy0LPsVwlK5KXmmazjrnI1fbGhyhAioxiHxJkHNdgi0a9TFCzKXzhFCOZCSwapXWbwJJAna4uiTUA8ZAN0w9Qwh8ZB6lQSqV0eBdo8lNCFGZCsYJYq2wZAf2YmVUVCVLZBNphZAq463JKSiECZClyfynPmowGEuH5lGZCX8Q0',
I20141217-13:38:58.047(1)?         expiresAt: 1423941428713,
I20141217-13:38:58.047(1)?         id: '10152814253281413',
I20141217-13:38:58.048(1)?         email: 'l******m',
I20141217-13:38:58.048(1)?         name: 'Lowen Flowen',
I20141217-13:38:58.048(1)?         first_name: 'Lowen',
I20141217-13:38:58.048(1)?         last_name: 'Flowen',
I20141217-13:38:58.048(1)?         link: 'https://www.facebook.com/app_scoped_user_id/10152814253281413/',
I20141217-13:38:58.048(1)?         gender: 'male',
I20141217-13:38:58.049(1)?         locale: 'en_US' } } }
I20141217-13:38:58.049(1)? Exception while invoking method 'login' Error: insert requires an argument
I20141217-13:38:58.049(1)?     at Mongo.Collection.(anonymous function) [as insert] (packages/mongo/collection.js:465)
I20141217-13:38:58.049(1)?     at Object.Accounts.insertUserDoc (packages/accounts-base/accounts_server.js:1042)
I20141217-13:38:58.050(1)?     at Object.Accounts.updateOrCreateUserFromExternalService (packages/accounts-base/accounts_server.js:1189)
I20141217-13:38:58.050(1)?     at Package (packages/accounts-oauth/oauth_server.js:45)
I20141217-13:38:58.050(1)?     at packages/accounts-base/accounts_server.js:383
I20141217-13:38:58.050(1)?     at tryLoginMethod (packages/accounts-base/accounts_server.js:186)
I20141217-13:38:58.050(1)?     at runLoginHandlers (packages/accounts-base/accounts_server.js:380)
I20141217-13:38:58.050(1)?     at Meteor.methods.login (packages/accounts-base/accounts_server.js:434)
I20141217-13:38:58.051(1)?     at maybeAuditArgumentChecks (packages/ddp/livedata_server.js:1594)
I20141217-13:38:58.051(1)?     at packages/ddp/livedata_server.js:648

3
你需要从onCreateUser中返回user对象,以便将其插入到用户集合中。 - Sasikanth
请阅读文档:http://docs.meteor.com/#/full/accounts_oncreateuser,了解有关创建用户的账户的详细信息。 - Sasikanth
这是否有效或存在其他问题? - Sasikanth
我明白了,谢谢!从我看到的文档中,我没有清楚地看到我需要返回用户。 - flowen
1个回答

16
您需要返回用户。Meteor文档中的示例如下:
// Support for playing D&D: Roll 3d6 for dexterity
Accounts.onCreateUser(function(options, user) {
  var d6 = function () { return Math.floor(Random.fraction() * 6) + 1; };
  user.dexterity = d6() + d6() + d6();
  // We still want the default hook's 'profile' behavior.
  if (options.profile)
    user.profile = options.profile;
  return user;
});

你可以在 return 语句之前使用 console.log(user)


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接