你如何从回送一个自定义的用户模型中使用MySQL的数据源

问题描述:

的Windows 7 64位系统 回环-CLI 3.10你如何从回送一个自定义的用户模型中使用MySQL的数据源

我已经看到了一些其他相关的问题,但他们并没有解决我的问题我已阅读访问角色模型有关如何获取另一种模式中,但在我的案件无关的模型文档将无法正常工作

我希望能够访问用户模型中的角色模型作为

​​

以上结果都是你ndefined。

作为一个启动脚本,它可以工作,但我更愿意将它全部放在用户模型中。

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" 
    } 
    } 
+0

您不必要求'server.js'文件。你可以通过'user'模型 - 'user.app.models.Role'来获得一个'Role'模型。你也可以同样进入你的'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; 
    }); 
} 

相关链接:Loopback: How to add afterRemote of a model to another model

+0

是的,这正是我正在寻找的,有趣的是我在阅读本文之前就已经发现了。我想知道是否可以使用关系而不是'开始'来获得上述信息,因为您应该可以访问任何相关模型。 – dan

+0

据我所知,相关模型只用于在查询时获取相关记录。 –

+0

是的,这就是我想要做的,查询用户模型类中的用户/角色信息。 @Razmjo提供了一个解决方案,我只是想知道是否有另一种方式,因为文档说如果你建立了关系,你应该能够访问另一个模型中的数据。我尝试过的失败。 – dan