Node js中的查询未通过异步等待执行

时间:2019-11-19 10:07:41

标签: javascript mysql node.js async-await

我正在尝试在我的node js应用程序中发出GET请求,但由于某种原因,它无法与async await一起使用。当我使用回调链时,它有效,但是当我尝试使用异步执行相同的查询时,等待它给我一个错误:

  

TypeError:将圆形结构转换为JSON       在JSON.stringify()

我的代码:

router.get("/getuser", async(req,res)=>{
const emailexists= 'select * from users'
try{
    const results=await connection.query(emailexists)
    res.send(results)
}catch(err){
    console.log(err)
}
})

我正在使用mysql作为数据库。谁能帮忙吗?

1 个答案:

答案 0 :(得分:1)

您使用的mysql库不支持promise。因此,connection.query(emailexists)不会返回承诺,因此将await与它一起使用不会做任何有用的事情,也不会等待结果。

您可以手动分配要使用的特定功能,使用third party promise wrapper for mysql,也可以使用具有内置Promise支持的较新的mysql2/promise library。请参阅该链接以获取编程示例。