使用sequelize创建具有关联层次结构的对象

时间:2019-04-19 03:27:14

标签: sequelize.js

使用nodejs的续集,创建对象的层次结构,在我的情况下为3个级别。 Model1属于Model2,Model2属于Model3。当我调用create时,会创建Model1和Model 2对象,但是我不知道如何在数据库中创建Model3(postgres)。

我尝试在Model1创建中包含Model2,这解决了创建Model2的问题。但是我不知道如何通过model2包括创建Model3。

Model1->有很多Model2->有很多Model3

module.exports = {
    create(req, res) {
        return Model1.create({
            name: req.body.name,
            description: req.body.description,
            status: 0,
            Model2s: req.body.model2s,
        },
            {
                include: Model2
            }
        )

现在正在创建Model2行,但是我无法创建Model3行。 任何帮助表示赞赏。

1 个答案:

答案 0 :(得分:0)

显然,答案是在Sequelize Associations文档页面的末尾,但按照元帅法律的要求,就在长文件的末尾。

`return Product.create({
  title: 'Chair',
  user: {
    firstName: 'Mick',
    lastName: 'Broadstone',
    addresses: [{
      type: 'home',
      line1: '100 Main St.',
      city: 'Austin',
      state: 'TX',
      zip: '78704'
    }]
  }
}, {
  include: [{
    association: Product.User,
    include: [ User.Addresses ]
  }]
});`

结尾处的include语句不是模型而是关联:就我而言

`association: Model1.hasMany(Model2),
include: [Model2.hasMany(Model3)]`

希望这可以帮助更多的人。