gpt4 book ai didi

node.js - sequelize include,连接两个关联表

转载 作者:行者123 更新时间:2023-12-03 22:38:27 26 4
gpt4 key购买 nike

我在单独的文件中定义了 2 个模型分配和区域,如下所示:

./models
--Area.js
--Assignment.js
--index.js

区域.js :

const Area = sequelize.define('area',{
ID: {
类型:Sequelize.INTEGER,
自动增量:真,
主键:真
},
名称: {
类型:Sequelize.STRING,
}
}, {
时间戳:假
});
Area.hasMany(Assignment, { foreignKey:'areaId'});

作业.js:

const 赋值 = sequelize.define('赋值',{
ID: {
类型:Sequelize.INTEGER,
自动增量:真,
主键:真,
}
}, {
时间戳:假
});
Assignment.associate = 模型 => {
models.Assignment.belongsTo(models.Area, {
外键:'areaId',
onDelete: "级联",
});
};

当我尝试使用 包含 属性查找具有区域信息(连接)的一些分配时,我收到一条错误消息: 区域与分配无关!

Assignment.findAll({
包括:[{模型:区域}]
}).then((赋值) => {
res.status(200).json(赋值)
}).catch((e) => {
res.status(500).json({ error: e.message })
})

提前致谢。

最佳答案

Area.hasMany(Assignment, { foreignKey:'areaId'});

所以列 areaId 应该在你的 Assignment.js 中。但是在您的 Assignment 模型中看不到它。
models.Assignment.belongsTo(models.Area, {
foreignKey: 'areaId',
onDelete: "CASCADE",
});

此外,仅当您的 Assignment.js 中有一个名为 areaId 的列时,这才是正确的

总之,您错过了 areaId 模型中的 Assignment 列。

关于node.js - sequelize include,连接两个关联表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54430973/

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