如何从sequelize的父表中获取数据

时间:2019-03-15 11:57:04

标签: node.js angularjs express sequelize.js nodeapi

我正在使用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没有关联!

1 个答案:

答案 0 :(得分:0)

因为您尝试获取结果集而没有在模型tblRouteDetail中定义关系。

打开模型tblRouteDetail,然后在两个表之间添加一个关系,如下所示。

 tblRoute.associate = function associate({ tblRouteDetail }) {
    return tblRoute.hasOne(tblRouteDetail, {
      foreignKey : 'tblroute_id'
    });
  };

它可以帮助您理解。