如何在使用id时使用Sequelize创建关联?

编程入门 行业动态 更新时间:2024-10-08 06:28:26

<a href=https://www.elefans.com/category/jswz/34/1771448.html style=如何在使用id时使用Sequelize创建关联?"/>

如何在使用id时使用Sequelize创建关联?

我有一个warmup和一个warmup_step。我正在尝试创建一个warmupwith an association但是,当我尝试创建时,它不会将warmup_id映射到warmup_step。我在做什么错?

// Warmup

module.exports = (sequelize, DATATYPES) => {
  const Warmup = sequelize.define(
    "warmup",
    {
      duration: { type: DATATYPES.INTEGER, allowNull: false },
      name: { type: DATATYPES.STRING, allowNull: false },
    },
    { underscored: true }
  );

  // Assign an associate function on the model
  Warmup.associate = function (models) {
    models.Warmup.hasMany(models.WarmupStep);
  };

  return Warmup;
};
// Warmup Step

module.exports = (sequelize, DATATYPES) => {
  const WarmupStep = sequelize.define(
    "warmup_step",
    {
      duration: { type: DATATYPES.INTEGER, allowNull: false }, // seconds
      exercise_id: { type: DATATYPES.INTEGER, allowNull: false },
      warmup_id: { type: DATATYPES.INTEGER, allowNull: false }, // Map to parent Warmup.
      step_index: { type: DATATYPES.INTEGER, allowNull: false }, // position in warmup.
    },
    { underscored: true }
  );

  // Assign an associate function on the model
  WarmupStep.associate = function (models) {
    models.WarmupStep.belongsTo(models.Warmup, { foreignKey: "warmup_id" });
  };

  return WarmupStep;
};

创建功能:

  Warmup.create(
    {
      name,
      duration,
      warmup_steps,
    },
    {
      include: [WarmupStep],
    }
  )
    .then((data) => res.send(data))
    .catch((err) => {
      console.log("here");
      console.log(err);
    });

我希望创建warmup,然后为warmup_steps使用ID,但这给了我错误message: 'warmup_step.warmup_id cannot be null'。我以为这就是创建关联为您所做的事情?还是我必须在两个电话中这样做?

回答如下:

您还应该在hasMany关联中指出warmup_id

models.Warmup.hasMany(models.WarmupStep, { foreignKey: "warmup_id" });

更多推荐

如何在使用id时使用Sequelize创建关联?

本文发布于:2024-05-07 22:01:14,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1757452.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:如何在   id   Sequelize

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!