2017-04-26 35 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與所有相應的關聯。