gpt4 book ai didi

node.js - sequelize 错误模型与另一个模型无关

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

我想包含一个 BelongsTo 关联

我有2个模型

用户,团队
团队有很多用户,但用户只属于一个团队,团队有一个团队领导

这是用户模型定义

module.exports = (sequelize, DataTypes) => {
const user = sequelize.define('user', {
username: {
type: DataTypes.STRING,
allowNull: false
},
password: {
type: DataTypes.STRING,
allowNull: false
},
team_id: {
type: DataTypes.INTEGER,
allowNull: false
}
},
{
classMethods: {
associate: (models) => {
user.belongsTo(models.team,{
targetkey: 'id',
foreignKey: 'team_id'
});
},
},
});
return user;
};

这是团队模型定义
module.exports = (sequelize, DataTypes) => {
const team = sequelize.define('team', {
name: {
type: DataTypes.STRING,
allowNull: false
},
leader: {
type: DataTypes.INTEGER,
allowNull: false
}
{
classMethods: {
associate: (models) => {
team.hasMany(models.user, {
foreignKey: 'id'
});
team.belongsTo(models.user,{
targetkey: 'id',
foreignKey: 'leader'
});
},
},
});
return team;
};

我想在列出用户时获取每个用户的团队信息
像这样的东西
{
"id": 3,
"username": "user123",
"password": "password",
"team_id": 1,
"team": {
"name": "name",
"leader": "leader_name"
}
}

我试图包括团队,但响应为空

这是代码:
list(req, res){
return models.user.findAll({
include: [{
model: models.team
}],
offset: req.query.offset,
limit: req.query.limit

})
.then(function(users){

res.status(200).send(users)
})
.catch(function(error){
res.status(400).send(error)
})
}

回复为空

输出为 {}
错误是
团队与用户无关

方言:postgres

数据库版本:9.6.3

Sequelize 版本:3.30.4

我不使用别名,我想知道我的定义可能有什么问题

提前非常感谢帮助

最佳答案

请执行下列操作

associate: (models) => {
models.team.hasMany(models.user, {
foreignKey: 'id'
});
models.team.belongsTo(models.user,{
targetkey: 'id',
foreignKey: 'leader'
});
}

用户也一样,因为里面使用的模型超出了范围,所以最好使用usinf模型来引用它。

关于node.js - sequelize 错误模型与另一个模型无关,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44508096/

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