Koa2请求.身体是空的

Koa2 request.body is empty

本文关键字:请求 Koa2      更新时间:2023-09-26

——这个问题很老了,这里使用的库很可能已经过时了,解决方案仍然是正确的,但请使用最新的版本——

我正在与koa2和node6的web服务工作。我的koa依赖项如下:

"koa": "^2.0.0-alpha.4",
"koa-async-body": "^1.0.4",
"koa-bodyparser": "^3.2.0",
"koa-logger": "^1.3.0",
"koa-router": "^7.0.1",

我的实现像这样;

const apiPrefix = 'api',
      apiParent = 'auth',
      api = 'register',
      router = new Router();
router.prefix(`/${apiPrefix}/${apiParent}/${api}`);
router.post('/', async(context, next) => {
  try {
    console.log(context.request.body);
    context.body = await post(context.request.body);
    await next();
  } catch (err) {
    context.throw(500);
  }
});

在另一个类中,我将此路由绑定到app。我还将bodyParser添加到Koa中,如下所示;

const app = new Koa();
app.use(bodyParser());

当我尝试记录请求体时,它是一个空对象。另一方面,这个设置可以很好地与这个项目中的其他人一起工作。

我做错了什么?我是否使用了过时的依赖项?

Content-type: application/json标头添加到我的Postman请求中,解决了问题。