Loopbackjs 如何使用mysql数据源从环回中的自定义用户模型访问角色模型

Loopbackjs 如何使用mysql数据源从环回中的自定义用户模型访问角色模型,loopbackjs,Loopbackjs,Windows 7 x64 环回cli 3.10 我已经看到了一些其他相关问题,但它们并没有解决我的问题。我已经阅读了有关如何在另一个模型中访问不相关模型的文档,但在我的情况下,它将不起作用 我希望能够访问用户模型中的角色模型,如中所示 let models = require('../../server/model-config.json'); let app = require('../../server/server.js'); module.exports = function (us

Windows 7 x64 环回cli 3.10

我已经看到了一些其他相关问题,但它们并没有解决我的问题。我已经阅读了有关如何在另一个模型中访问不相关模型的文档,但在我的情况下,它将不起作用

我希望能够访问用户模型中的角色模型,如中所示

let models = require('../../server/model-config.json');
let app = require('../../server/server.js');

module.exports = function (user) {

  let Role = app.models.Role;
  let RoleMapping = app.models.RoleMapping;

}
以上结果都是未定义的

作为一个引导脚本,这是可行的,但我更希望它都在用户模型中

module.exports = function (app) {
  var User = app.models.user;
  var Role = app.models.Role;
  var RoleMapping = app.models.RoleMapping;


  RoleMapping.belongsTo(User);
  User.hasMany(RoleMapping, {foreignKey: 'principalId'});
  Role.hasMany(User, {through: RoleMapping, foreignKey: 'roleId'});
};
我的关系被定义为

user.json

  "relations": {
    "roles": {
      "type": "hasMany",
      "model": "Role",
      "foreignKey": "principalId",
      "through": "RoleMapping"
    }
  }

我不确定你的确切意思,但你可以访问一旦所有的模型加载。有以下几点

let models = require('../../server/model-config.json');
let app = require('../../server/server.js');

module.exports = function (user) {
  app.on('started', function(){
     let Role = app.models.Role;
     let RoleMapping = app.models.RoleMapping;
  }); 
}

相关链接:

您不需要
server.js
文件。您可以通过
user
model-
user.app.models.Role
访问
Role
模型。同样,你也可以找到你的
角色映射模型。是的,这就是我要找的,有趣的是,我在读这篇文章之前发现了这一点。我想知道,是否可以仅使用关系而不是“开始”获取上述信息,因为您应该能够访问任何相关模型。据我所知,相关模型仅用于在查询时获取相关记录。是的,这就是我正在尝试做的,查询用户模型类中的用户/角色信息@Razmjo给出了一个有效的解决方案,我只是想知道是否还有其他方法,因为文档说,如果你建立了关系,你应该能够访问另一个模型中的数据。我试过但没有成功。