1

我想将文档呈现到列表页面,但在浏览器中,找不到列表页面。

这是代码:

router.get('/', function(ctx){
    let type = getURLParm(ctx.url).type;
    var article = {};
    var content = {};
    mongoService.find('col', { type: type, id: { $gte: 0 } },
     function(docs) {
       ctx.render('list',{data:docs});
    });        
});
4

1 回答 1

0

Koa(与 Express 不同)不等待任何回调,因此,如果函数结束,并且响应正文为空,则请求将返回 Not Found。

要做到这一点,您必须承诺您的 mongoService.find 函数,将中间件编写为异步函数,然后等待 mongoService.find

Koa2 的代码:

router.get('/', async function(ctx){
  let type = getURLParm(ctx.url).type;
  var article = {};
  var content = {};
  let docs = await mongoService.find('col', { type: type, id: { $gte: 0 } })
  ctx.render('list',{data:docs});       
});

还有一个建议:使用库来解析请求数据,例如koa-body

于 2017-07-06T22:49:03.687 回答