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

标签 node.js postgresql express sequelize.js

我在单独的文件中定义了 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/

相关文章:

javascript - Mongoose 批量插入遗漏了关键信息

javascript - 服务后和更新时 Angular 4 CLI 太慢

javascript - Mongoose 嵌入式文档更新

php - 获取 "dynamic"时区之间的等效时间

ruby-on-rails - postgres 导入 csv 并自动填充 ID 并创建和更新

oracle - 随机化两个数据集

node.js - 在 Insomnia 中发送 JSON 对象字段

javascript - 开发环境中与AJAX数据服务有关的PhoneGap环境变量?

node.js - heroku 上缺少 Access-Control-Allow-Origin header

javascript - jQuery 附加新数据