【问题标题】:Querying multiple models with Sequelize.js ORM使用 Sequelize.js ORM 查询多个模型
【发布时间】:2015-11-28 11:09:52
【问题描述】:

我需要选择所有SPR_TYPE_UMSPR_TYPE_ASSETS 用于编辑窗口,但要选择一个SPR_TYPE_ASSETS

 router.get('/edit/:assetId', function (req, res) {
      models.SPR_ASSET.findAll({
        include: [models.SPR_TYPE_UM, models.SPR_TYPE_ASSETS],
        // need to include all um and types here
        where: { ID_ASSET: req.params.assetId}
      }).then(function(data) {
        console.log(data);
        res.render('assets/edit', {
          title: 'Assets specification',
          data: data
        });
      });
    });

协会

SPR_ASSET.belongsTo(models.SPR_TYPE_UM, {foreignKey: 'ID_TYPE_UM', onUpdate: "NO ACTION"});
SPR_ASSET.belongsTo(models.SPR_TYPE_ASSETS, {foreignKey: 'ID_TYPE_ASSETS', onUpdate: "NO ACTION"});
SPR_TYPE_UM.hasMany(models.SPR_ASSET, {foreignKey: 'ID_TYPE_UM'});
SPR_TYPE_ASSETS.hasMany(models.SPR_ASSET, {foreignKey: 'ID_TYPE_ASSETS'});

也许我有错误的关联,或者我应该使用原始查询来做到这一点? 此查询仅给出来自SPR_ASSETSPR_TYPE_UMSPR_TYPE_ASSETS 的一条记录。

我需要来自SPR_ASSET 的一条记录以及来自SPR_TYPE_UMSPR_TYPE_ASSETS 的所有记录。

【问题讨论】:

    标签: node.js sequelize.js


    【解决方案1】:

    对我来说这是解决方案,也许有更好的方法来做到这一点

    router.get('/edit/:assetId', function (req, res) {
        models.SPR_ASSET.findAll({
              where: { ID_ASSET: req.params.assetId}
            }).then(function(SPR_ASSET_DATA) {
              models.SPR_TYPE_UM.findAll().then(function(SPR_TYPE_UM_DATA){
                  models.SPR_TYPE_ASSETS.findAll().then(function(SPR_TYPE_ASSETS_DATA){
                      var data ={
                          SPR_ASSET: SPR_ASSET_DATA,
                          SPR_TYPE_UM: SPR_TYPE_UM_DATA,
                          SPR_TYPE_ASSET: SPR_TYPE_ASSETS_DATA
                      }
                      console.log(data);
                      res.render('assets/edit', {
                      title: 'Справочник спецификаций',
                      data: data
                      });
                  })
              })
    
            });
        });
    };
    

    【讨论】:

      猜你喜欢
      • 2020-01-02
      • 2014-05-27
      • 2017-11-25
      • 1970-01-01
      • 1970-01-01
      • 2013-11-12
      • 1970-01-01
      • 2018-03-07
      • 1970-01-01
      相关资源
      最近更新 更多