3
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 状态和空身体,我做错了什么?

4

3 回答 3

4

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

一个原因可能是您PlaceModel.getPlaces(ctx.query)没有返回承诺。所以它继续而不等待结果getPlaces

于 2017-03-08T12:05:23.673 回答
3

我也有这个问题,并通过添加解决它:

ctx.status = 200;

正下方

ctx.body = data;

于 2018-03-21T03:06:06.900 回答
1

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

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);
于 2017-02-08T07:40:31.850 回答