用参考序列创建belongTo实例

时间:2019-01-13 14:31:11

标签: node.js sequelize.js

我正在为我的新NodeJs项目使用Sequelize

我定义了两个模型:BusinessUnit和具有以下关联的商店:Store.belongsTo(BusinessUnit);

  module.test_data_insertion = function() {
    models.BusinessUnit.findOne({
      where: {
        BUID: "001"
      }
    }).then(element => {
      fs.readdirSync(dir).forEach(function(file) {
        var contents = fs.readFileSync(dir + file);
        var jsonContent = JSON.parse(contents);
        models.Store.create({
          StoreId: jsonContent.StoreId,
          StoreName: jsonContent.StoreName,
          businessUnitId: element.id
        });
      });
    });
  };

我找不到正确的方式来引用商店中的元素,我想这样的事情不需要直接引用id字段

module.test_data_insertion = function() {
    models.BusinessUnit.findOne({
      where: {
        BUID: "001"
      }
    }).then(element => {
      fs.readdirSync(dir).forEach(function(file) {
        var contents = fs.readFileSync(dir + file);
        var jsonContent = JSON.parse(contents);
        models.Store.create({
          StoreId: jsonContent.StoreId,
          StoreName: jsonContent.StoreName,
          businessUnit: element
        });
      });
    });
  };

它应该很简单,但我看不到。谢谢

1 个答案:

答案 0 :(得分:0)

假设您的关联设置正确,您正在寻找类似这样的内容:

module.test_data_insertion = function() {
models.BusinessUnit.findOne({
  where: {
    BUID: "001"
  }
}).then(element => {
  fs.readdirSync(dir).forEach(function(file) {
    var contents = fs.readFileSync(dir + file);
    var jsonContent = JSON.parse(contents);
    element.setStore({
      StoreId: jsonContent.StoreId,
      StoreName: jsonContent.StoreName,

    });
  });
});
};

请从启用set方法的文档中读取belongsTo

不过,请注意,如果这是一对多关系(一个业务部门且商店很多),则可能需要切换到belongsToMany,它具有add方法。因为setStore会覆盖以前的set。

此外,由于它们是可以保证的,因此我不确定这些方法中的任何一种是否可以在.forEach内正常工作,您可能需要切换到传统的for loop