我正在尝试创建一个远程挂钩,该挂钩查找与发布新用户时给定的属性“ type”同名的Role。问题是,我似乎无法访问模型。当我在Roles上使用find()时,它不会抛出错误,但是所有属性都是未定义的。对于其他模型(例如用户)也是如此。
我尝试使用Model.on('attached'),就像在model.js中需要它一样。但这是服务器/引导/ ..,因此可以访问模型。
module.exports = function(app) {
const User = app.models.User;
var Role = app.models.Role;
var RoleMapping = app.models.RoleMapping;
User.observe('after save', function setRoleMapping(ctx, next) {
if (ctx.instance) {
if(ctx.isNewInstance) {
// look up role based on type
//
Role.find({where:{name: ctx.instance.type}}, function(err, role) {
if (err) {return console.log(err);}
console.log("Role name: " + role.name) //-> undefined
RoleMapping.create({
principalType: "USER",
principalId: ctx.instance.id,
roleId: role.id //-> undefined
}, function(err, roleMapping) {
if (err) {return console.log(err);}
console.log('User assigned RoleID ' + role.id + ' (' + ctx.instance.type + ')'); //-> User assigned RoleID undefined (admin)
})
});
}
}
next();
});
};
预期的最后一个console.log()->用户分配的RoleID 5cd978a1130e7142bef28042(管理员)
实际结果->用户分配的RoleID未定义(管理员)