5

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

我正在使用 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. 我还向 Koa 添加了 bodyParser,如下所示;

const app = new Koa();

app.use(bodyParser());

当我尝试记录请求正文时,它是一个空对象。另一方面,此设置适用于该项目中的其他人。

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

4

1 回答 1

9

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

于 2016-08-14T12:59:38.553 回答