我是Sequelize的新手
我对“嵌套的渴望加载”有疑问
我有2个具有一对多关系的表
评论表
用户表
我将此代码用于查询
Comment.findAll({
include: [User]
})
我知道了
{
id: 1,
comment: "test",
user: {
id: 3,
name: "someone"
}
}
但是我期望这样的结果
{
id: 1,
comment: "test",
user_id: 3,
user_name: "someone"
}
我阅读了几个有解决方案的stackoverflow帖子,但适用于版本3.3
Comment.findAll({
attributes: ['id', 'name', ['user.id','user_id'], ['user.name','user_name']]
include: [{ model: User, attributes:[], nested: false, required: true }]
})
Comment.findAll({
attributes: ['id', 'name', [Sequelize.col('user.id'),'user_id'], [Sequelize.col('user.name'),'user_name']]
include: [{ model: User, attributes:[], nested: false, required: true }]
})
但这对我不起作用。
现在我使用sequelize 5.5.1如何实现它。
有人可以帮助我吗?
我的女朋友伤了我的心。您是回答这个问题的唯一可以治愈我的心的人。
答案 0 :(得分:0)
您可以使用以下代码获得所需的输出:
由于Sequelize是基于承诺的,因此建议使用then和catch。
Comment.findAll({
include: [User]
}).then(result=>
{
let obj=
{
id: result.item,
comment: result.comment,
user_id: result.user.id,
user_name: result.user.name
};
console.log(JSON.stringify(obj));
}).catch(err=>
{
console.log(err);
});