I want to include a BelongsTo association
I have 2 models
user , team team has many users, but user belongs to one team only, and team has a team leader
here is user model definition
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;
};
here is team model definition
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;
};
I want to get team information for each user when list users something like this
{
"id": 3,
"username": "user123",
"password": "password",
"team_id": 1,
"team": {
"name": "name",
"leader": "leader_name"
}
}
I tried to include team but the the response was empty
here is the the code:
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)
})
}
Response was empty
the output was {} error was team is not associated to user
Dialect: postgres
Database version: 9.6.3
Sequelize version: 3.30.4
I don't use aliases, I wonder what might be wrong in my definition
Advance very grateful for the help
via luna
No comments:
Post a Comment