NodeJS Koa每次发送状态404都是

xxls0lw8  于 2022-11-29  发布在  Node.js
关注(0)|答案(4)|浏览(254)
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状态和空的身体,我做错了什么?

kg7wmglp

kg7wmglp1#

看起来,await并没有真正“等待”,因此返回得太早(这会导致404错误)。
其中一个原因可能是PlaceModel.getPlaces(ctx.query)没有返回一个承诺,所以它继续执行,而不等待getPlaces的结果。

w1e3prcc

w1e3prcc2#

我也遇到了这个问题,通过添加以下内容解决了这个问题:
ctx.status = 200;
正下方
ctx.body = data;

iibxawm4

iibxawm43#

你必须把你的功能和路由器连接起来,这里有一个简单的例子:

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

ccgok5k54#

在我的情况下,而使用koa路由器,我忘记添加

app.use(router.routes())

正上方

app.listen(port)

相关问题