gpt4 book ai didi

node.js - 如何在 api 路由中使用多个函数?

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

我正在尝试使用此 Api GET Route 来查找经过身份验证的用户团队中的所有玩家。我觉得 const 变量是正确的,但我不确定我在做什么,就像在 .then() 内一样,我使用 async 函数,以便我可以使用同步等待,但是我收到 findTeam 未定义

路由中使用的 auth 是我的 jwt 中间件,它允许我使用 req.user.id 中间件来获取经过身份验证的用户 ID。

router.get('/Team', auth, async function(req, res) {
//get USers team
const findTeam = await TeamUsers.findOne({
where: {
UserID: req.user.id
}
})
.then(findTeam, async function(req, res) {
const findTeamID = findTeam.TeamID;

const findUsers = await TeamUsers.findAll({
// get the players teamUSers get that Id then
where: {
TeamID: findTeamID
}
});
})
.then(findUsers, async function(req, res) {
const findUsers = await Users.findByPk(findUsers.id);

console.log(findUsers.first_name);
res.status(200).json(findUsers);
})

.catch(err => {
res.status(400).send('unable to save to database');
});
});

最佳答案

那时不需要

您可以在没有 then 的情况下编写所有代码,它将同步运行
但是你必须通过检查引用来检查函数返回的值是否没有抛出异常

const findTeam = await TeamUsers.findOne({
where: {
UserID: req.user.id
}
});

if(findTeam){

const findTeamID = findTeam.TeamID;
const findUsers = await TeamUsers.findAll({
// get the players teamUSers get that Id then
where: {
TeamID: findTeamID
}
});

if (findUsers) { ...etc }

}

您可以通过使用 catch 回调尝试 catch 块或链函数来捕获异常

关于node.js - 如何在 api 路由中使用多个函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57617306/

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