在koa中,用了MySQL 数据库,前台用 ajax POST 请求数据库数据时,若将 ctx.body表达式写在 query 表达式中用以返回查询的数据给前台,会报 404 错误。下图写法若将 ctx.body 写在query 查询方法外,则正常,但是无法获取到数据库查询的数据。 这是怎么回事啊?? 该怎么解决,既不报404又能将查询到的数据返回给前台ajax。下图写法
5 回答
samuel_sx
TA贡献1条经验 获得超2个赞
1、在请求体外部声明一个变量接收查询语句返回值。
2、使用await new Promise把整个请求体包裹。
3、在回调方法中将查询到的返回值赋给提前声明好的变量,之后执行Promise的resolve方法。
之后就可以在请求体外部调用变量来获取从sql中查询到的数据。避免ctx.body在异步函数中会出现404的尴尬情况
LB0
TA贡献1条经验 获得超0个赞
//试试这样写 var res = await connection.query(巴拉巴拉巴拉).catch( err => { console.log(error) )} ctx.body = res.需要返回的变量 感觉错误应该是 你既然用了await 就不会触发 connection.query的回调函数 //以上全是猜的,错了勿喷!
添加回答
举报
0/150
提交
取消