2017-06-06 59 views
1

我想将文档呈现给列表页面,但在浏览器中找不到列表页面。koa2 ctx.render无法在某个函数中呈现

这是代码:

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}); 
    });   
}); 

回答

0

兴亚(不像快递)不会等待任何回调,因此,如果函数结束,响应主体是空的,那么请求将返回未找到。

要你必须promisify您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