今天KOA2在搭建系统踩了一坑。没错,世界处处是坑,废话不多说,上菜。
问题:调用接口404,后端日志有返回。
游览器调用时报了404,后端控制台打印了日志并正确的返回。
let userinfo = await mysql.execute(url, arg);
年轻的我调试中发现使用await的地方有问题,于是我去看了我用promise封装的mysql,并没有什么问题, 此处省略一万字。
于是猜想,有没有可能前一个中间件没有等待执行,就走了,回头去看,果然,最后才发现是我写的中间件有问题。
router.use(async (ctx, next) => {
let url = ctx.url;
let body = ctx.request.body;
let query = ctx.query;
console.log(url, 'body参数', body, 'query参数', query)
next()
});
这是简单的打印了请求地址,参数。想必有人已经明白了,你这个next()没有加await,以前用express习惯了,就随手写了个,吃一堑长一智。
加上之后,腰不酸了,腿不疼了。