用 腾讯云开发环境 编写 查询数据库 的后台接口时 返回数据为空
发布于 6 年前 作者 caona 15703 次浏览 来自 问答

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

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

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

module.exports=async ctx=>{

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

 ctx.state.data=res

}

很赞呀,有用!

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

可能是Content-Type 设置有问题

回到顶部