gpt4 book ai didi

reactjs - 使用 M :N relationship with sequelize on postgres 创建实体

转载 作者:行者123 更新时间:2023-12-03 22:31:32 26 4
gpt4 key购买 nike

我基本上有两个主要模型 Country,Activity,它们具有 M:N 关系,因此我使用以下内容来定义第三个模型 Country_Activity
编辑

Country.belongsToMany(Activity, {through: 'Country_Activity',
foreignKey: 'actId',
otherKey: 'alpha3Code'
})

Activity.belongsToMany(Country, {through: 'Country_Activity',
foreignKey: 'actId',
otherKey: 'alpha3Code'
});
一旦我创建了所有国家,我就开始创建事件,但这一次,指出它们所在的国家
router.post('/saveacomplexactivity', async(req, res) => {
console.log('Api::Activities.js (15):: req.body: ', req.body)
await Activity.create({
actId: req.body.actId,
name: req.body.name,
countries: req.body.countries
}, {
include: [Country]
}).then((activity) => {
res.json(activity)
}).catch(err => console.log(err))
})
希望它不仅会创建事件,还会创建连接表 Country_Activity 中的关联
但它不起作用,在创建国家和事件时,Country_Activity 模型已创建但仍为空
编辑
我收到一个错误,说违反了事件主键的唯一性(actId 重复),但很奇怪,因为我只保存了一个事件。可能问题出在关系的定义上。
我尝试交换“foreignKey,otherKey” delaration,结果相同
我保存到数据库的方式是这样的,首先我将所有国家保存到一个 promise 中,然后我使用 Promise.All 来确保我将在所有国家创建后创建事件(这样我确保我不会提及尚未创建的国家/地区)
我会在这里错过什么?
提前致谢,
拉斐尔

最佳答案

Country.belongsToMany(models.Activity, {
foreignKey: 'countryId',
otherKey: 'activityId',
through: models.Country_Activity,
as: 'activity'
})

Activity.belongsToMany(Country, {
through: 'Country_Activity',
foreignKey: 'countryId',
otherKey: 'activityId',
as: 'country'
});

关于reactjs - 使用 M :N relationship with sequelize on postgres 创建实体,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66507952/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com