• 手机版

    扫码体验手机版

  • 微信公众号

    扫码关注公众号

国内首家协议开发

软芯音视解码保护平台

在线
客服

发布
需求

在线
聊天

天盟
APP

天盟APP下载

关注
微信

微信扫一扫访问
顶部

koa中ctx.body写在query回调中无法返回数据给前台

在koa中,用了MySQL 数据库,前台用 ajax POST 请求数据库数据时,若将 ctx.body表达式写在 query 表达式中用以返回查询的数据给前台,会报 404 错误。下图写法


151028cbb6n9h62glbthbf.jpg

若将 ctx.body 写在query 查询方法外,则正常,但是无法获开到数据库查询的数据。 这是怎么回事啊?? 该怎么解决,既不报404又能将查询到的数据返回给前台ajax。下图写法


151134cfi6ooj7dd771dgd.jpg

免责声明:本内容仅代表回答会员见解不代表天盟观点,请谨慎对待。

版权声明:作者保留权利,不代表天盟立场。

使用道具 举报

全部参与4

1、在请求体外部声明一个变量接收查询语句返回值。
2、使用await new Promise把整个请求体包裹。
3、在回调方法中将查询到的返回值赋给提前声明好的变量,之后执行Promise的resolve方法。
之后就可以在请求体外部调用变量来获开从sql中查询到的数据。避免ctx.body在异步函数中会出现404的尴尬情况

使用道具 举报

如果我是你,我会在if(!err)后加一个else,在else中输出试试,你这个代码,如果sql出错了就没有输出了,只有正确才输出

使用道具 举报

我也遇到了,请问解决了吗

使用道具 举报

//试试这样写varres=awaitconnection.query(巴拉巴拉巴拉).catch(err=>{console.log(error))}ctx.body=res.需要返回的变量感觉错误应该是你既然用了await就不会触发connection.query的回调函数//以上全是猜的,错了勿喷!

使用道具 举报

发新帖

发布任务需求已有1031167位用户正在使用天盟网服务

发布分类: *
任务预算: *
需求内容: *
手机号码: *
任务商家报价为
  • 预算价 :
  • 成交价 :
  • 完工期 :
  • 质保期 :

* 最终任务项目以服务商报价、双方协商为准!