我使用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正确创建之前创建用户模型?
谢谢!
答案 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
// ...
}
感谢阅读。希望这能帮到别人!!