如何使用koa提取表单字段

how to extract form fields with koa

我在 koa 中提取表单字段时遇到问题:

假设我发送这样的表格:

<form action="/somewhere" method="post">
  <input type="text" name="somefield"/>
</form> 

如何在后端提取这些:

  router.post('/somewhere', async ctx => {
    const { form } = ctx.req; //not here

  });

您需要使用一些中间件来解析请求正文。查看 koa-bodyparser。你可以这样使用它:

app.js

const Koa = require('koa')
const bodyParser = require('koa-bodyparser')
const router = require('./routes')

const app = new Koa()

app.use(bodyParser()) // Make sure you `use` bodyParser before your router
app.use(router.routes())
app.use(router.allowedMethods())

routes.js

const Router = require('koa-router')

const router = new Router()

router.post('/somewhere', async ctx => {
  console.log(ctx.request.body.somefield); // All your form fields will be available on the `ctx.request.body` object
})