koa每次发送状态404是

Koa send status 404 every time is

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

您必须将您的功能与路由器连接起来。这是它如何工作的一个小例子:

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

似乎 await 并不是真正的 "wait",因此 returns 太早了(这会导致 404 错误)。

其中一个原因可能是您的 PlaceModel.getPlaces(ctx.query) 没有 returns 承诺。所以它继续而不等待 getPlaces.

的结果

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

ctx.status = 200;

正下方

ctx.body = data;