查询记录及其与 sequelize 的关联

querying for a record and its associations with sequelize

给定一个 table 演出和一个 table 场地,具有以下关联:

Show.belongsTo(Venue, { foreignKey: { name: 'id_venue', allowNull: false } });
Venue.hasMany(Show);

我正在尝试抢占一个场地及其所有相关节目。

const getSingleVenue = async (req, res) => {
    try {
        const { venueName } = req.params;
        const venue = await Venue.findOne({
            where: {
                name: venueName,
            },
            include: [
                { model: Show }
            ]
        })
        res.send(venue);
    }
    catch(err) {
        console.log(err);
        res.send(400);
    }
}

现在,我卡在了错误 Unknown column 'show.venueId' in 'field list'

不确定如何编辑我的关联来为 sequelize 提供它正在寻找的内容。

问题是这个Venue.hasMany(Show);你没有定义外键。

替换部分代码:

Show.belongsTo(Venue, { foreignKey: { name: 'id_venue', allowNull: false } }); Venue.hasMany(Show);

Show.belongsTo(Venue, { foreignKey: { name: 'id_venue', allowNull: false } });
Venue.hasMany(Show, { foreignKey: { name: 'id_venue', as: shows } };