在应用启动时向新用户添加accountStatus

时间:2016-02-03 22:57:46

标签: meteor

我尝试将accountStatus添加到我第一次运行应用程序时创建的用户,但它会不断崩溃。 accountStatus不属于user.profile

有人可以查看我的代码并告诉我我做错了什么。

感谢您的帮助。

路径:server.js

// run at Meteor app startup
Meteor.startup(function(options, user) {

  // if users database is empty, seed these values
  if(Meteor.users.find().count() < 1) {

    // users array
    var users = [
      {firstName: 'Sam', lastName: 'Smith', email: 'sam@gmail.com', roles: ['is_student']},   
    ];
    // user creation
    _.each(users, function(userData) {
      // return id for use in roles assignment below
      var userId = Accounts.createUser({
        email: userData.email,
        password: 'password',
        profile: {
          firstName: userData.firstName,
          lastName: userData.lastName,
        }
      });
      // verify user email
      Meteor.users.update({ _id: userId }, { $set: { 'emails.0.verified': true } });
      // add roles to user
      Roles.addUsersToRoles(userId, userData.roles);

      // add accountStatus and set to true
      _.extend(userId, { accountStatus: true });

    });
    console.log('New users created!');
  }
});

1 个答案:

答案 0 :(得分:1)

看看这一行:

_.extend(userId, { accountStatus: true });

查看_.extend定义:

  

将源对象中的所有属性复制到目标对象,然后返回目标对象。它是按顺序的,因此最后一个源将覆盖先前参数中同名的属性。

这条线应该做什么?