KOA async/await后ctx.body失效

2019-12-30  本文已影响0人  Demonskp

事由

最近在重写自己的博客系统,从原来的express修改到koa+TS。在添加数据库连接时碰到了这个问题。

简单来说,他的表现就是你写了正确的async/await或者promise,但是你用console来打印能正确打印出来,你用ctx.body去显示它就失败了。

失败的原因

我自己写的中间件在调用next()的时候 并没有把next当作一个异步函数使用。因此你在promise中异步赋值了ctx.body,但是由于next函数没有等你,在你赋值之前这一网络请求就已经完成了。

解决办法

  1. 检查你的async/await和promise是否正确。
  2. 检查你的中间件的next函数是否等待了。
上一篇 下一篇

猜你喜欢

热点阅读