【发布时间】:2018-04-21 19:45:26
【问题描述】:
我在 Sequelize 中有以下两个表
const Tokens = sequelize.define("Tokens", {
id: {
type: DataTypes.UUID,
defaultValue: DataTypes.UUIDV4,
primaryKey: true
},
active: {
type: DataTypes.BOOLEAN
}
});
和
const User = sequelize.define("Users", {
id: {
type: DataTypes.UUID,
defaultValue: DataTypes.UUIDV4,
primaryKey: true
},
first_name: {
type: DataTypes.STRING
}
});
User.associate = models => {
models["Users"].hasMany(models["Tokens"], {foreignKey: 'userID', as: 'tokens_userid'});
};
我正在尝试在 Sequelize 中运行以下查询。
const token = await db.Tokens.findOne({
where: {
id,
active: true
},
include: ["tokens_userid"]
});
但我收到以下错误。
Error: Association with alias "tokens_userid" does not exists
我的主要目标是根据令牌 ID 获取用户。现在我只需将该关联移至 User 表,但稍后我将希望获取给定用户 ID 的所有令牌。所以无论如何我都会遇到这个问题。
我尝试添加以下行,但它抱怨循环关系或类似的东西。
models["Tokens"].hasOne(models["User"], {foreignKey: 'userID', as: 'tokens_userid'});
如何查询 Users 或 Tokens 表并让它正确填充关系?
【问题讨论】:
标签: javascript mysql node.js sequelize.js