gpt4 book ai didi

javascript - Sequelize - 在开发/构建模式之间包含不同的表名

转载 作者:行者123 更新时间:2023-12-03 22:32:15 25 4
gpt4 key购买 nike

我在开发模式和构建模式之间包含的表名有问题。
我正在使用 - Next.js、Heroku、MySQL。
此示例在 开发 模式下运行良好。

export const getUserByEmail = async (email: string) => {
const { users, positions, roles } = model

return await users.findOne({
where: {
email: email,
deleted: 0
},
include: [
{
model: positions,
attributes: ['name']
},
{
model: roles,
attributes: ['name']
}
]
})
}
我在 dev 模式下得到的数据:
{
id: 1,
firstName: 'Alice',
lastName: 'Bob',
position: {
name: 'superadmin'
},
role: {
name: 'Superadmin'
}
}
构建 模式时出现了奇怪的行为,我在其中获得了以下数据:
{
id: 1,
firstName: 'Alice',
lastName: 'Bob',
positions_position: {
name: 'superadmin'
},
roles_role: {
name: 'Superadmin'
}
}
可能是定义模型中的问题吗?我完全糊涂了...

最佳答案

我通过为表之间的每个关系添加别名解决了这个问题。
例子:

users.belongsTo(roles, { foreignKey: 'idRole', as: 'role' })
roles.hasMany(users, { foreignKey: 'idRole', as: 'roles' })
然后将别名添加到选择中:
include: [
...
{
model: roles,
attributes: ['name'],
as: 'role'
}
]
无论如何,这是奇怪的行为......

关于javascript - Sequelize - 在开发/构建模式之间包含不同的表名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65772179/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com