koa中查询mysql数据,ctx.body 写在query回调中无法返回数据到前台,报404
在koa中,用了MySQL 数据库,前台用 ajax POST 请求数据库数据时,若将 ctx.body表达式写在 query 表达式中用以返回查询的数据给前台,会报 404 错误。下图写法
若将 ctx.body 写在query 查询方法外,则正常,但是无法获取到数据库查询的数据。 这是怎么回事啊?? 该怎么解决,既不报404又能将查询到的数据返回给前台ajax。下图写法
代码:
router.post('/query', async function(ctx, next) {
ctx.body = 'ok';
await connection.query('SELECT * FROM `notes` WHERE `title` = ?', ['434'],
function(err, rows, fields) {
if (!err) {
console.log(rows);
}
});
});
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
connection.query需要用promise封装下
如何封装可以参考这篇文:Node.js用ES6原生Promise对异步函数进行封装
不要写在里面,像楼上一样,先let data,然后在function里面把结果赋给data,再在外面ctx.body
我也困扰了很久,express是你这种写法可以