gpt4 book ai didi

node.js - 插入后立即返回 null 的 Sequelize 关系助手方法

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

我的代码目前遇到了一个关于 Sequelize 关联的奇怪问题。我定义了以下关系:

Recipe.associate = function (models) {
Recipe.belongsTo(models.User)
}

User.associate = function (models) {
User.hasMany(models.Recipe)
}

仅当使用 recipe.getUser() 检索配方时,我才能使用 Recipe.findById(id) 获取相关模型。但是,如果我在使用以下方法插入配方后立即尝试执行 recipe.getUser():
const recipe = await Recipe.create({ userId, title, ingredients, direction})
const user = await recipe.getUser()
console.log(user)

这将返回 null ,我无法理解为什么会这样。

最佳答案

我解决了。 Seauelize 在它的命名约定下面做了一些魔术。所以在我的例子中,它在我的 UserId 模型上寻找 User (因为我将我的模型定义为 Recipe )列,我将其定义为 userId 。所以我需要做的就是在定义关联时明确指定正确的列:

Recipe.belongsTo(models.User, { foreignKey: 'userId' })

我必须把它放在这里,以防其他人遇到这个问题。

关于node.js - 插入后立即返回 null 的 Sequelize 关系助手方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54044138/

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