gpt4 book ai didi

mysql - findById() 的 for 循环内迭代后响应不正确

转载 作者:行者123 更新时间:2023-11-29 18:02:58 25 4
gpt4 key购买 nike

我创建了 2 个表,名为:groupusermaps 和 groups。从 groupusermaps 中,我获取所有 groupId,并且这些 groupId 传入 findById() 方法,以获取与 for 循环内该 groupId 相关的所有详细信息。

这是我的服务方法:

getAllGroupsByUserId(userId, callback) {
var arr = [];
return sequelize.transaction().then(function(t) {
return groupUserMapModel.GroupUserMap.findAll({
where: {
userId: userId
},
transaction: t
}).then((allGroupsByUserId) => {//from findAll i am getting 2, 1, 4
groupId
for (var p in allGroupsByUserId) {
return
groupModel.Group.findById(allGroupsByUserId[p].groupId, { transaction: t
}).then((group) => {
arr.push(
JSON.stringify(group)
);
});
}
}).then(() => {
callback(arr);
});
});
}

我的 Controller 代码:

router.get('/controllers/getGroups/user/:userId/groups', (req, res) => {
groupService.getAllGroupsByUserId((req.params.userId), (result) => {
log.info('Group list: ' + JSON.stringify(result));
});
res.send('Fetched all group list');
});

但是我从控制台上的 Controller 得到一个空数组作为响应。有什么办法可以解决这个问题吗?

最佳答案

groupUserMapModel.GroupUserMap.findAll({
where: {
userId: userId
},
include:[{
model:groupModel
}]
})
.then((results) => {
console.log(results);
})
.catch(err=>{
console.log(err);
})
// provided that groupUserMapModel associated to groupModel
groupUserMapModel.associate = models => {
groupUserMapModel.belongsTo(models.groupModel, {foreignKey: groupId})
}

有关更多信息,请阅读sequelize关联

关于mysql - findById() 的 for 循环内迭代后响应不正确,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48163222/

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