Node js路由器异步和等待不工作



我的代码有问题。程序每次在函数中跳过for循环。所以,我尝试添加async,但现在我一直收到一条错误消息。这是错误消息:

result=wait GetAnrede(result(

SyntaxError:await仅在异步函数中有效

有人能帮我吗?提前谢谢。

这是数据库在此处输入图像描述

这是我的代码

//Anrede = Salutation
function GetAnrede(result){
for(let i = 0 ; i < result.length ; i++){
db.query(`SELECT anrede FROM tblanrede WHERE anredeid = ${db.escape(result[i].anredeid)}`,
(anredeErr, anredeResult) => {
result[i].anredeid = anredeResult[0].anrede
}
)
}
return result
}
//Lehrer = Teacher
router.get("/GetLehrer",  async function(req, res, next){
db.query(`SELECT lehrerkuerzel, anredeid, vorname, nachname FROM tbllehrer`,
(err, result) => {
if(err){
return res.status(400).send({
msg: err
})
}
if(!result.length){
return res.status(400).send({
msg: "In der Datenbank sind keine Lehrer vorhanden."
})
} else {
result = await GetAnrede(result)
console.log(result)
return res.status(200).send({
result
})
}
}
)})

像这样尝试

//Anrede = Salutation
async function GetAnrede(result){
for(let i = 0 ; i < result.length ; i++){
await db.query(`SELECT anrede FROM tblanrede WHERE anredeid = ${db.escape(result[i].anredeid)}`,
(anredeErr, anredeResult) => {
result[i].anredeid = anredeResult[0].anrede
}
)
}
return result;
}
//Lehrer = Teacher
router.get("/GetLehrer",  async function(req, res, next){
await db.query(`SELECT lehrerkuerzel, anredeid, vorname, nachname FROM tbllehrer`,
async (err, result) => {
if(err){
return res.status(400).send({
msg: err
})
}
if(!result.length){
return res.status(400).send({
msg: "In der Datenbank sind keine Lehrer vorhanden."
})
} else {
result = await GetAnrede(result)
console.log(result)
return res.status(200).send({
result
})
}
}
)})

最新更新