Как распечатать тело запроса в Koa

У меня есть приложение, в котором мне нужно отправлять данные с React внешнего интерфейса на Koa сервер. Проблема в том, что я понятия не имею, как распечатать тело запроса в Koa.

В React я запускаю этот код при нажатии

fetch("/metafield", {
      method: "POST",
      body: JSON.stringify({
        key: "key",
        value: "value",
        value_type: "string",
        namespace: "namespace",
      }),
    });

Простая выборка с телом на конечной точке сервера Koa.

В Koa есть такая

router.post("/metafield", (ctx) => {
    console.log(ctx.request.body);
  });

По какой-то причине это возвращает пустой объект {}.

Я также пробовал с

const bodyParser = require("koa-bodyparser");
const server = new Koa();
server.use(bodyParser());

как предлагается здесь, но результат остается прежним. После этого я попытался добавить bodyParser в коа-роутер, например

const router = new Router();
router.use(bodyParser());

но я все равно получаю пустой объект в приложении Koa.

заранее спасибо


person Mileta Dulovic    schedule 02.07.2020    source источник


Ответы (1)


Хорошо. Решение очень простое.

Это сработало, когда я добавил

headers: {
        "Content-Type": "application/json",
      },

при отправке запроса с fetch

Теперь запрос должен выглядеть так

fetch("/metafield", {
      method: "POST",
      headers: {
        "Content-Type": "application/json",
      },
      body: JSON.stringify({
        key: "key",
        value: "value",
        value_type: "string",
        namespace: "namespace",
      }),
    });
person Mileta Dulovic    schedule 02.07.2020