Sequelize Express多种型号

时间:2015-04-28 21:55:26

标签: express sequelize.js

我似乎无法弄清楚如何包含多个模型。

我有三个型号。 Tabs, Servers, and Points

Tabs hasMany Server
Servers belongsTo Tabs and hasMany Points
Points belongTo Server

在我的路线中,我这样做:

router.get('/', function (req, res, next) {
    models.TabConfig.findAll({
      include: [models.ServerConfig]
    }).then(function (tabs) {
      res.render('index', {
        tabs: tabs,
      });
   });
});

module.exports = router;

它将获取所有选项卡以及与之关联的服务器。效果很好。

但我也想要与服务器相关的点数,所以我可以遍历标签,服务器和点。

有什么想法吗?

由于

1 个答案:

答案 0 :(得分:1)

乍一看,您可以使用多个模型的预先加载:

models.TabConfig.findAll({
    include: [{
        model: models.ServerConfig,
        include: [models.Points]
    }]
})

这应该为您提供包含所有选项卡及其服务器的数组,并且在每个服务器内部,您将获得与其关联的点。

[{
    some: 'tab',
    saved: 'property',
    Servers: [{
        some: 'server',
        saved: 'property',
        Points: [...]
    }, ...]
}, ...]