Sequelize - 我必须在模型和查询中都指定“as”吗?
Posted
技术标签:
【中文标题】Sequelize - 我必须在模型和查询中都指定“as”吗?【英文标题】:Sequelize - do I have to specify "as" in both model and query? 【发布时间】:2022-01-02 22:55:16 【问题描述】:这似乎是多余的,并迫使我在两个位置对相同的字符串进行硬编码 - 或者将其粘贴在必须传递的变量中。无论哪种方式,如果我在我的模型中指定关系的“as”,为什么我必须稍后在查询时使用相同的“as”属性调用它?
我的关系:
organization.hasMany(client, as: "Clients", foreignKey: "organization_id" );
client.belongsTo(organization, as: "AuthOrganization", foreignKey: "organization_id" );
查询:
let data = await client.findOne(
include: [ model: organization, as: "AuthOrganization" ]
, raw: true );
如果我省略了相同的“as”属性,则会抛出一个错误,告诉我将其放入其中。我是 Sequelize 的新手,但它似乎是这种方式,因为“as”可用于识别不明确的关系。但是,您在模型中设置的值似乎是合理的默认值,不是吗?
我真正想要的是这个,当我写一个查询时:
let data = await client.findOne(
include: organization
, raw: true );
我这样做只是为了避免混合函数名称中的自动下划线。我无法忍受丑陋的“addAuth_organization”函数名称,也找不到解决此问题的其他方法。
【问题讨论】:
【参考方案1】:我会认为这是“是”。 ?
【讨论】:
以上是关于Sequelize - 我必须在模型和查询中都指定“as”吗?的主要内容,如果未能解决你的问题,请参考以下文章