Как передать значение в Koa2

У меня есть приложение для реагирования, которое я хочу передать на сервер koa.

let data = new FormData()
  data.append('json', JSON.stringify(token))

  fetch('/charge', { method: 'POST', body: data })
    .then((res) => {
      return res.json()
    })
    .then((json) => {
      console.log('something wrong')
      console.log(json)
    })

и ниже мой код сервера

const config = require('../config')
const server = require('../server/main')
const router = require('koa-router')()
const parse = require("co-body")

const port = config.server_port

server.use(router.routes())

router
  .post('/charge', function (ctx, next) {
    console.log(ctx.request.body)
    console.log('howyd')
    ctx.body = "howdy"
  })

Просто не могу получить значение, передаваемое от клиента. Ребята, вы знаете, что происходит?


person Well    schedule 11.02.2016    source источник


Ответы (1)


Убедитесь, что вы используете анализатор тела. Похоже, вы требуете его, но на самом деле не используете. Что-то вроде этого (не проверено):

const config = require('../config')
const server = require('../server/main')
const router = require('koa-router')()
const parse = require("co-body")

const port = config.server_port

server.use(router.routes())

router
  .post('/charge', async (ctx, next) => {
    let body = await parser.json(ctx.request)
    console.log(body)
    console.log('howyd')
    ctx.body = "howdy"
  })
person mikefrey    schedule 11.02.2016
comment
Все молодец. Причина в том, что я не включил koa-bodyparser, поэтому коа не знал, как анализировать поступающий запрос, и поэтому всегда возвращал undefined - person Well; 12.02.2016