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

发布于 7 年前作者 caona15836 次浏览最后编辑 7 年前来自 ask

路由配置正确,按照官方文档新建了返回 “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

4 回复
taoxu
taoxu1 楼6 年前

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

const {mysql} =require(‘…/qcloud.js’)

module.exports=async ctx=>{

   var res = await  mysql(‘user’).select(‘*’)

 ctx.state.data=res

}

hluo
hluo2 楼6 年前

很赞呀,有用!

yonghuang
yonghuang3 楼6 年前

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

mingfu
mingfu4 楼5 年前

可能是Content-Type 设置有问题