最近在开发一个微信小程序,采用nodejs后台,在一个读取MySQL数据库并返回数据给前端的场景上遇到了问题,描述如下,忘各位高手相助。 先看代码: [JavaScript] 纯文本查看 复制代码
|
在回调函数中,响应请求。
还可以考虑用await:https://github.com/hstarorg/code-pusher/blob/master/packages/push-server/src/bizs/accessKeysBiz.js
module.exports = ctx=>{ ... connection.query(sql, function (err, result) { if (err) { a = err.message; return; } a = result["0"].name; ctx.state.data = { msg: a } }); }
这样写的话,data传到前端又显示没值
@__sai: 怎么会呢~你需要理解下Promise的玩法,以及koa的管道模型。
用promise吧,你可以百度学习一下。
promise的机制可以实现当一个异步代码完成以后,由你去通知它成功完成了,再进行下一步操作。
new Promise(resolve,reject){
connection.query(sql,
function
(err, result) {
if
(err) {
a = err.message;
return
;
}
a = result[
"0"
].name;
});
}.then(
ctx.state.data = {
msg: a
}
)