路由配置正确,按照官方文档新建了返回 “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
前端参数如何传递进来根据不同的变量来操作mysql
很赞呀,有用!
你改成下面的代码试试看,我的是这样读出来的
const {mysql} =require('../qcloud.js')
module.exports=async ctx=>{
var res = await mysql('user').select('*')
ctx.state.data=res
}
可能是Content-Type 设置有问题