gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-03 22:25:47 24 4
gpt4 key购买 nike

我有一个 warmup 和一个 warmup_step 。我正在尝试创建一个 warmup with 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 ,然后将 id 用于 warmup_steps ,但它给了我错误 message: 'warmup_step.warmup_id cannot be null' 。我认为这就是使用关联创建为您所做的事情?或者我必须在两个电话中做到这一点?

最佳答案

您还应该在 hasMany 关联中指明 warmup_id :

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

关于javascript - 使用 id 时如何使用 Sequelize 创建关联?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61920947/

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