2017-02-04 57 views
1
export async function getPlaces(ctx, next) { 
    const { error, data } = await PlaceModel.getPlaces(ctx.query); 
    console.log(error, data); 
    if (error) { 
     return ctx.throw(422, error); 
    } 
    ctx.body = data; 
} 

Koa每次发送404状态和空身,我在做什么错?Koa每次发送状态404是

+0

404通常意味着Koa找不到匹配url的路由,你确定上面的函数叫做? –

+0

是的,我敢肯定,console.log的工作原理 –

+0

围绕await调用尝试了'try/catch'吗? – zeronone

回答

1

在看来,await并没有真正“等待”,因此返回太早(这将导致404错误)。

其中一个原因可能是您的PlaceModel.getPlaces(ctx.query)未返回承诺。因此,它不会等待getPlaces的结果。

0

你必须用路由器连接你的功能。这里有一个小例子如何工作的:

import * as Koa from "koa"; 
import * as Router from "koa-router"; 

let app = new Koa(); 
let router = new Router(); 

async function ping(ctx) { 
    ctx.body = "pong"; 
    ctx.status = 200; 
} 

router.get("/ping", ping); 

app.use(router.routes()); 
app.listen(8080);