收藏
回答

用 腾讯云开发环境 编写 查询数据库 的后台接口时 返回数据为空

问题模块
管理后台

路由配置正确,按照官方文档新建了返回 “hello world” 的后台接口测试可行,如下

{"code":0,"data":{"msg":"Hello World"}}


但是想要在后台查询数据库后返回结果时,接口返回过早,小程序客户端查看数据为空。

接口的响应是这样子的:

{code: 0, data: {}}


下面是controllers文件夹中的处理器

const { mysql } = require('../qcloud')


module.exports = function (ctx, next) {

    mysql('user').select('*').returning('*').then(function (res) {

        ctx.state.data = res;

    });

}


但是启用单步调试时是可以看到res的数据以及data也成功赋值了,就是接口返回为空。

新手对ES6不熟悉,只知道.then()方法是异步的,个人猜测是在执行then()方法时接口已经返回了,

请问应该如何让接口正确的返回?真心求救啊TAT


最后一次编辑于  2017-12-05  (未经腾讯允许,不得转载)
回答关注问题邀请回答
收藏

4 个回答

  • 凡
    2018-09-02

    前端参数如何传递进来根据不同的变量来操作mysql

    2018-09-02
    赞同
    回复
  • 達則
    達則
    2018-01-03

    很赞呀,有用!

    2018-01-03
    赞同
    回复
  • 黄爱廷
    黄爱廷
    2017-12-06


    你改成下面的代码试试看,我的是这样读出来的


    const {mysql} =require('../qcloud.js')


    module.exports=async ctx=>{

       var res = await  mysql('user').select('*')

     ctx.state.data=res

    }


    2017-12-06
    赞同
    回复 1
    • 小侯爷
      小侯爷
      2018-05-15
      请问存数据怎么操作?读数据我这边可以,但是存入数据却不行。
      2018-05-15
      回复
  • 黄爱廷
    黄爱廷
    2017-12-05

    可能是Content-Type 设置有问题

    2017-12-05
    赞同
    回复