gpt4 book ai didi

javascript - 环回。如何获得一个用户的所有 Angular 色?

转载 作者:行者123 更新时间:2023-11-30 20:40:29 24 4
gpt4 key购买 nike

我正在创建一个 Loopback 应用程序并创建了一个基于内置用户模型的自定义用户模型。

{
"name": "user",
"base": "User",
"idInjection": true,
"properties": {
"test": {
"type": "string",
"required": false
}
},
"validations": [],
"acls": [],
"methods": []
}

然后在引导脚本中创建(如果不存在)新用户、新 Angular 色和 Angular 色映射。

User.create(
{ username: 'admin', email: 'admin@mail.com', password: 'pass' }
, function (err, users) {
if (err) throw err;

console.log('Created user:', users);

//create the admin role
Role.create({
name: 'admin'
}, function (err, role) {
if (err) throw err;

//make user an admin
role.principals.create({
principalType: RoleMapping.USER,
principalId: users.id
}, function (err, principal) {
if (err) throw err;
console.log(principal);
});
});
});

然后在自定义远程方法中,我尝试使用用户 ID 获取用户的所有 Angular 色。 Loopbacks' documentation on this topic说是

Once you define a “hasMany” relation, LoopBack adds a method with the relation name to the declaring model class’s prototype automatically. For example: Customer.prototype.orders(...).

并给出这个例子:

customer.orders([filter], function(err, orders) { ... });

但是当我尝试使用 User.roles() 方法时,(const User = app.models.user;) 我得到下一个错误:

TypeError: User.roles is not a function

但是当我发出远程请求 http://localhost:9000/api/users/5aab95a03e96b62718940bc4/roles 时,我得到了所需的 roleMappings 数组。

所以,如果有人可以帮助使用 js 获取这些数据,我将不胜感激。我知道我可能只查询 RoleMappings 模型,但我想以文档的方式进行。

最佳答案

环回文档建议 extend the built-in user model添加更多属性和功能。

一个好的做法是创建一个模型 Member 来扩展内置模型 User。在新模型中声明以下关系:

“关系”:{
“Angular 色”:{
“类型”:“有很多”,
“模型”:“Angular 色映射”,
“foreignKey”:“principalId”
}
}

现在,您可以获得所有用户 Angular 色:

user.roles(function (err, roles) {
// roles is an array of RoleMapping objects
})

其中 userMember 的一个实例。

关于javascript - 环回。如何获得一个用户的所有 Angular 色?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49322699/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com