使用 Sequelize.js 时在哪里定义关联/关系?

Posted

技术标签:

【中文标题】使用 Sequelize.js 时在哪里定义关联/关系?【英文标题】:Where to define associations / relations when using Sequelize.js? 【发布时间】:2017-05-07 14:06:35 【问题描述】:

官方文档只处理示例代码,它定义了两个独立的模型,后跟关联/关系代码as follows。

var User = this.sequelize.define('user', /* attributes */)
  , Company  = this.sequelize.define('company', /* attributes */);

User.belongsTo(Company); // Will add companyId to user

我的猜测是

    需要所有模型并在单独的文件中定义关联,然后需要来自 app.js 的文件。 在每个模型文件中,需要所需的模型并在 classMethods.associate(models) 中定义关联。

我真的无法确定哪一个是“正确”的方式。我正在使用 Sequelize-CLI 生成迁移文件和模型文件。

【问题讨论】:

【参考方案1】:

classMethods.associate(function(models) ) 中的console.logging models 参数之后,我发现它实际上具有所有模型类。

您可以访问像 models.ModelName 这样的模型并详细说明它们以在那里定义关联和关系。

【讨论】:

以上是关于使用 Sequelize.js 时在哪里定义关联/关系?的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 sequelize.js 从关联模型中加载属性

使用 Sequelize.js 和 PostgreSQL 在关联模型上查询 JSONB 字段

Node.js / Sequelize.js / Express.js - 如何插入多对多关联? (同步/异步?)

sequelize (js) 关联多个列与一个表

Sequelize js如何获取关联模型的平均值(聚合)

Sequelize.js 与非别名关联一起加入别名关联