2017-04-26 40 views
0

我有三种模式:URL,动作,集装箱 我想通过下面的关系得到一个URL的容器:JS sequelize链协会访问器

db.Url.belongsTo(db.Action, { foreignKey: 'action_id'}); 
db.Action.belongsTo(db.Container, { foreignKey: 'container_id'}); 

我希望这样的事情:

db.Url.findOne(...).getAction().getContainer() 

然而,它似乎只有当我与一个接一个的实体工作。

即查询该网址的数据库。然后调用url.getAction()然后调用getContainer。

所以它是三个独立的查询而不是一个。

回答

1

所以你要求一个嵌套的包括?我不太明白你需要找到什么,Container通过给定的Url.id?无论如何,你正在寻找这样的事情

db.Url.find({ 
    include: [ 
    { 
     model: db.Action, 
     include : [{ 
     model: db.Container 
     }] 
    } 
    ] 
}) 
.then(function(response) { 
    return res.json(response); 
}) 
.catch(function (err) { 
    // more code... 
}); 

这将返回一个单一的JSON与所有相应的关联。