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

时间:2018-10-11 03:54:01

标签: associations sequelize.js

我看了看文档,并在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。

1 个答案:

答案 0 :(得分:0)

模型定义存在一些问题:

Orders.hasOne(models.Cards, { foreignKey: 'id', as: 'card', });
  1. 在您的定义中,外键将放置在cards表上。
  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
})