我正在使用Sequelize依赖
我想从父表中获取数据,我有一个表 tblroute ,该表与 routedetails 相关。 tblroute 的 id 是 routedetails
中的外键router.get('/bookingdetails', passengerMiddleware, (req, res) => {
tblBookingdetail.sync().then(() => {
tblBookingdetail.findAll({
where: {
passengerId: req.passenger.id
},
include: [
{
model: tblRoute,
as: 'route',
include: [
{
model: tblRouteDetails,
as: 'routedetails'
}
]
},
]
}).then(data => {
if (data && data.length > 0) {
return res.json(baseResponse.sendSuccess('data', data));
} else {
return res.json(baseResponse.sendError('data not found'));
}
});
})
})
它给出以下错误 未处理的拒绝SequelizeEagerLoadingError:tblRouteDetail与tblRoute没有关联!
答案 0 :(得分:0)
因为您尝试获取结果集而没有在模型tblRouteDetail
中定义关系。
打开模型tblRouteDetail
,然后在两个表之间添加一个关系,如下所示。
tblRoute.associate = function associate({ tblRouteDetail }) {
return tblRoute.hasOne(tblRouteDetail, {
foreignKey : 'tblroute_id'
});
};
它可以帮助您理解。