我目前在代码中遇到一个奇怪的问题,即关于序列关联的问题。我定义了以下关系:
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
,我无法理解为什么会这样。
答案 0 :(得分:0)
我的猜测是console.log(user)在用户从配方.getUser()获取响应之前执行。
也许尝试一下:
const recipe = await Recipe.create({ userId, title, ingredients, direction})
const user = await recipe.getUser()
.then(data => {
console.log(data);
});
答案 1 :(得分:0)
我解决了。 Seauelize在其命名约定下做了一些魔术。因此,就我而言,它正在我的Dictionary
模型上寻找[T: Void]
列(因为我将模型定义为UserId
,因此我将其定义为User
。因此,我需要做的就是在定义关联时明确指定正确的列:
Recipe
如果有人遇到这个问题,我必须把它放在这里。