Sequelize 创建一个新实例并添加关联

Sequelize Create a new instance and add association

我查看了文档并通读了 sequelize github 存储库中与此相关的一些问题,但到目前为止还没有找到任何解决方案,恕我直言,操作简单。 我有两个模型:用户和卡片。它们与一对一的关系相关联。

Orders.create({
  date: req.body.date,
  ...
  card: req.body.card //FK to a card ID
})

req.body.card是卡片的id。当我取回创建的对象时,尽管卡为空。

我也试过先创建订单,然后再添加关联,但也没有成功。我发现了一些关于设置关联的 set 函数的内容,但我只看到了具有 hasMany 关系的示例。

我不想做任何花哨的事情 - 只是想在订单的卡片字段中设置卡片 ID。

您的模型定义存在一些问题:

Orders.hasOne(models.Cards, { foreignKey: 'id', as: 'card', });
  1. 在你的定义中,外键会放在cards table.
  2. 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
})