Node.js 从具有HasManyThrough关系的模型进行查询-strongloop api

Node.js 从具有HasManyThrough关系的模型进行查询-strongloop api,node.js,loopbackjs,strongloop,Node.js,Loopbackjs,Strongloop,这是对前一个问题的跟进。目前,api可以从共享关系的类别和游戏模型中进行查询。例如,通过此端点/Categories/1001/games/mature我可以列出格斗类别中成熟设置为真的所有游戏。但是,我已经从db tablegame\u info中加入了第三个模型gameInfo。因为,我想从这三个表中获取信息,所以我从db表games\u categories\u bridge中包含了一个名为gamesCategoriesBridge的直通模型。我按照指导方针来制定。问题在于,诸如descr

这是对前一个问题的跟进。目前,api可以从共享关系的
类别
游戏
模型中进行查询。例如,通过此端点
/Categories/1001/games/mature
我可以列出
格斗
类别中
成熟
设置为
的所有游戏。但是,我已经从db table
game\u info
中加入了第三个模型
gameInfo
。因为,我想从这三个表中获取信息,所以我从db表
games\u categories\u bridge
中包含了一个名为
gamesCategoriesBridge
的直通模型。我按照指导方针来制定。问题在于,诸如
description
publishedDate
等附加信息不会显示在最终结果中。如何正确设置
remoteMethod
以完成以下任务

通用/models/category.js

表架构:

分类

游戏

游戏信息

桥牌游戏

端点:
/categories/{id}/games/mature
API响应所需的格式:

games [ 
{
gameName: 'Tekken', 
gameInfo : 
[
    { 
        description : 'Published by Namco.',
        published_date : '1994'
    }
],
        categorName: 'fighting', 
        categoryId: 1001, 
        mature: true 
}
.....
]

首先在
game
game\u info
模型之间创建一个
hasMany
关系

//Now inside remote_method.
Category.mature = function(id, callback) {
    var app = this.app;
    var Game = app.models.game;
    Category.findById(id, {}, function(err, category) {
        if (err) return callback(err);
        //Now call the Game find method
        Game.find({
            "where": {
                categoryId: id,
                mature: true
            },
            include:'game_info'
        }, function(err, gameArr) {
            if (err) return callback(err);
            gameArr.forEach(function(gameObj, index){
                gameObj.categoryName = category.category_name;

            });
            callback(null, gameArr);
        });
    });
}

您想要的API响应格式具有
game\u info
属性,但它显示了与
类别相关的信息。另外,我认为您需要重新设计数据库的模式。因为使用这个模式你可以实现你想要的,但事情会变得比正常情况更困难。@RobinsGupta,对不起,输入错误。已更正所需的API响应。
games->category model
之间的关系是什么?每个
game
属于一个
category
还是每个
game
可以有多个
category
?@RobinsGupta每个游戏可以有多个category对于第一个
,其中
我得到了错误
ER\u BAD\u字段\u错误:“where子句”中的未知列“category\u id id”
@code\u Ed\u学生我有一个输入错误编辑它检查。您是否能够将社交登录身份验证与环回结合起来?
game_id         game_name           category_id     mature
-----------     ------------        -----------     --------------
13KXZ74XL8M     Tekken              10001           true
138XZ5LPJgM     Forza               10002           false
game_id         description                     published_date
-----------     -----------                     --------------                      
13KXZ74XL8M     Published by Namco.             1994
138XZ5LPJgM     Published by Microsoft Studios. 2005
game_id        category_id   
-----------    ----------- 
13KXZ74XL8M    10001   
138XZ5LPJgM    10002 
games [ 
{
gameName: 'Tekken', 
gameInfo : 
[
    { 
        description : 'Published by Namco.',
        published_date : '1994'
    }
],
        categorName: 'fighting', 
        categoryId: 1001, 
        mature: true 
}
.....
]
//Now inside remote_method.
Category.mature = function(id, callback) {
    var app = this.app;
    var Game = app.models.game;
    Category.findById(id, {}, function(err, category) {
        if (err) return callback(err);
        //Now call the Game find method
        Game.find({
            "where": {
                categoryId: id,
                mature: true
            },
            include:'game_info'
        }, function(err, gameArr) {
            if (err) return callback(err);
            gameArr.forEach(function(gameObj, index){
                gameObj.categoryName = category.category_name;

            });
            callback(null, gameArr);
        });
    });
}