【发布时间】:2019-08-31 03:14:56
【问题描述】:
我正在努力实现的目标
找到所有经过身份验证的用户团队中的玩家。
有什么问题?
无法在 const findUsers = await User.findAll where 子句中使用返回的 json,我不确定这是否正确。
数据库表
用户表:id (PK) 等
团队:id(PK)等
TeamUsers:id、TeamID(外键)、UserID(外键)等
从 FindTeamUsers (Var ob) 返回 Json,这是正确的
[{"id":2,"TeamID":1,"UserID":1,"createdAt":"2019-08-09","updatedAt":"2019-08-09"},{"id":3,"TeamID":1,"UserID":3,"createdAt":"2019-08-09","updatedAt":"2019-08-09"},{"id":76,"TeamID":1,"UserID":5,"createdAt":"2019-08-22","updatedAt":"2019-08-22"}]
下面是我目前使用 Nodejs、ExpressJS 使用的 Route
router.get('/Team', auth, async function(req, res) {
// -- Get the Users team that is currently Authenticated (req.user.id (auth) )
const findTeam = await TeamUsers.findOne({
where: {
UserID: req.user.id
}
});
//If the User has a team
if (findTeam) {
// -- Get the players Team Mates who have the matching TeamID
const findTeamUsers = await TeamUsers.findAll({
where: {
TeamID: findTeam.TeamID
}
});
//Store the object and Display in JSON FORMAT
var ob = JSON.stringify(findTeamUsers);
console.log(ob);
if (!findTeamUsers) {
console.log('error');
} else {
//find the Users Details From the Users Table Model
//findTeamUsers - Is an array of each record found from const findTeamUsers = await TeamUsers.findAll
const findUsers = await User.findAll({
where: {
id: ob.UserID
}
});
res.status(200).json(findUsers);
}
}
});
【问题讨论】:
-
您遇到什么错误?
findTeam is undefined或许? -
@silencedogood 错误:WHERE 参数“id”具有无效的“未定义”值。这是来自 FindUsers 中的 ob.id 。 FindTeamUsers 工作正常。
-
不得不更改我的代码 findteamusers.UserID ,应该是 ob.id 。 ob 是对象,id 是指 USers 表中的用户 id
-
查看您的
ob对象,id应该以ob[0].id的形式访问...
标签: node.js sequelize.js