我看了看文档,并在sequelize github repo上阅读了与此相关的一些问题,但是到目前为止,还没有找到任何解决方案,恕我直言,简单的操作。 我有两种模式:用户和卡。它们与一对一关系相关联。
Orders.create({
date: req.body.date,
...
card: req.body.card //FK to a card ID
})
req.body.card是卡的ID。当我返回创建的对象时,尽管card为null。
我也尝试过先创建订单,然后再添加关联,但也没有运气。我发现了一些有关set
函数的东西,这些函数可以设置关联,但是我仅看到带有hasMany
关系的示例。
我并不想做任何花哨的事-只是想在订单的卡片字段中设置卡片ID。
答案 0 :(得分:0)
模型定义存在一些问题:
Orders.hasOne(models.Cards, { foreignKey: 'id', as: 'card', });
cards
表上。foreignKey
命名为id
将与模型自己的id
字段冲突。尝试以下操作:
const Card = sequelize.define('card', {
name: { type: Sequelize.STRING }
});
const Order = sequelize.define('order', {
name: { type: Sequelize.STRING }
});
Order.hasOne(Card, { foreignKey: 'order_id' }); // if foreignKey is not included, will default to orderId
const order = await Order.create({
name: 'first order'
})
const card = await Card.create({
name: 'first card',
order_id: order.id
})