【发布时间】: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”函数名称,也找不到解决此问题的其他方法。
【问题讨论】:
标签: javascript node.js orm sequelize.js