Home  >  Q&A  >  body text

node.js - Using koa2 + koa-router, but the request.body of the post request cannot be obtained

Xiaobai asks for advice. Submit a form on '/' to send a post request, but request.body in the body returned by '/link' is {} an empty object. Please tell me. Why is this?

const koa = require('koa')

const router = require('koa-router')()

const koaBody = require('koa-body')()

const bodyParser = require('koa-bodyparser')

const app = new koa()

app.use(bodyParser())

app.use(async (ctx, next) => {
  const start = new Date()
  await next()
  const ms = new Date() - start
  console.log(`${ctx.method} -> ${ctx.url} - ${ms}ms`)
})

router.get('/',async (ctx, next) => {
  await next()
  ctx.body = `<form action='/link' method='post'><input type="text" ><input type="submit" value="OK"></form>`
})

router.get('/hello/:name', async ctx => {
  let name = ctx.params.name
  ctx.body = `<h1>Hello, ${name}!</h1>`
})

app.use(router.routes())

router.post('/link', async (ctx, next) => {
  
  ctx.response.body = {
    code:'0',
    description: 'ok',
    result: ctx.request.body
  }
})


// app.use(async ctx => {
//    ctx.body = 'hello koa2'
// })

app.listen(3000)
我想大声告诉你我想大声告诉你2706 days ago1325

reply all(1)I'll reply

  • typecho

    typecho2017-06-17 09:18:49

    Hmm

    ctx.body = `<form action='/link' method='post'><input name="name" type="text" ><input type="submit" value="OK"></form>`

    The input box must have a name

    reply
    0
  • Cancelreply