【发布时间】:2020-09-02 20:05:31
【问题描述】:
我在不同的论坛上看到过很多次这个问题,但我无法解决它。我将 Express 和 PostgreSQL 与 Sequelize 一起使用。
基本上我有两个模型:校园和学术经理。两者之间是一对一的关系,Campus 有一位学术经理。
我已经实现了两个模型和关联工作,我可以看到它在 postgres 服务器的 mi 数据库中显示。但是当我尝试实现我的校园获取请求时,我尝试包含经理信息,但没有成功。我一直收到同样的错误:
SequelizeEagerLoadingError: Academic_manager 未与校园关联!
我相信我的问题与 include
有关这是我的代码 sn-ps:
campus.js
const campus = (sequelize, DataTypes) =>{
const Campus = sequelize.define('campus', {
name: {
type: DataTypes.STRING,
allowNull: false,
},
manager: {
type: DataTypes.INTEGER,
allowNull: false,
references: {
model: 'academic_manager',
key: 'id'
}
}
});
Campus.associate = models => {
Campus.hasOne(models.Manager, { foreignKey: 'id'});
}
return Campus;
};
export default campus;
academic_manager.js
const manager = (sequelize, DataTypes) =>{
const Manager = sequelize.define('academic_manager', {
name: {
type: DataTypes.STRING,
allowNull: false,
},
email: {
type: DataTypes.STRING,
allowNull: false
}
});
Manager.associate = models => {
Manager.belongsTo(models.Campus, { foreignKey: 'id'});
}
return Manager;
};
export default manager;
还有get方法:
router.get('/', async (req, res) => {
const campus = await req.context.models.Campus.findAll({
include: [
{ model: req.context.models.Manager }
]
});
return res.send(campus);
});
获取请求在没有包含的情况下有效。我知道这种关联已经实现,因为当我描述我的校园表和经理表时,我有这个:
TABLE "campus" CONSTRAINT "campus_manager_fkey" FOREIGN KEY (manager) REFERENCES academic_manager(id)
【问题讨论】:
标签: node.js postgresql express sequelize.js