用koa获取到数据了,但是无法返回给前端?

//router.js

clipboard.png

//controller.js

clipboard.png

//model.js

clipboard.png

省去了一些不必要的代码,我现在在浏览器中打开localhost/user,在终端里面能看到从数据库中取到的测试数据:

clipboard.png

但是页面上却是显示的404。跪求大神指导。。

------------------update------------------

应该是mongoose异步去数据库取数据的原因,但是在model.js里我已经用了promise了,还是先返回了。之所以状态码是404,貌似是因为koa封装ctx的时候response里默认了状态码是404,而并不是真的没有找到请求。

刚用了一下koa-mongo,但是把路由抽出去不放在app.js后又不能正确返回了,感觉也是异步的问题。。

阅读 10k
6 个回答

router里需要等待Promise的返回,改下代码试试

router.get('/user', async function (ctx, next) {
    console.log('router', ctx)
    await articleController.article(ctx)
})

然后articleFn 这个方法里ArticleModel前面加上return

这个问题应该是: 查询数据的行为是异步的, 我们需要在查询数据的代码前加一个await, 不然代码走到这里,没有得到异步操作的返回结果,所以默认就返回了404!请看代码:

clipboard.png

别的没看懂。我就看懂了。你代码里面没有user啊。所以404啊

把你的数据放到this.body里面啊

我也是同样的问题,你的问题解决了吗

koa2 前端post请求时,数据都能更新到数据库了,为什么响应头确实404

我遇到类似的问题,用Promise包装一下就可以了

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题