SailsJS:无法在beforeCreate中创建Model

时间:2016-07-26 10:42:18

标签: node.js sails.js

我使用SailsJS(v0.12.3),我想在创建配置文件之前创建一个用户。我的问题是用户创建成功,但UserProfile没有。

这是我的UserProfile型号:

beforeCreate: function (userProfile, cb) {
    // Creating user login
    console.log("Creating user login: ", userProfile);
    User.create({
        username: "abc",
        password: "1234567890"
    }).then(function (user) {
        console.log("Creating user done: ", user)
        userProfile.appUser = user.id;
        userProfile.code = user.username;
        cb(null, userProfile);
    }).catch(function (err) {
        console.log("ABC", err);
        cb(err);
    });
}

控制台输出:

Creating user login:  { firstName: 'Vu',
  lastName: 'Bao',
  gender: 1,
  phoneNumber: '0987654321',
  id: '29b1b37b-ca95-4fd0-8cf8-e35a25af4616',
  code: '1469529082587',
  isVerified: false,
  totalVisit: 0 }

我可以看到邮件Creating user login ...已打印,但我看不到日志邮件Creating user done ...ABC错误。

结果:在数据库中我创建了user,但userProfile没有。

如何在UserProfile正确创建之前创建用户模型?

谢谢!

1 个答案:

答案 0 :(得分:3)

一段时间后阅读有关模型行为Lifecycle callbacks的内容。我发现我的代码没有回调我在afterCreate模型中定义的函数User。所以,我确实删除了函数afterCreate,然后它就可以了。

// ./api/models/User.js
afterCreate: function (user, cb) {
    // i commented a lots in this function, but did not callback cb
    // then i remove this method because I did not need it anymore
    // ...
}

感谢阅读。希望这能帮到别人!!