使用koa2 + koa-router ,但是获取不到post请求的request.body

发布于 2022-09-05 01:48:14 字数 1096 浏览 10 评论 0

小白请教,在'/'上进行表单提交发送 post 请求,但是'/link'返回的body中 request.body{}空对象,请问这是为什么呢?

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)

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

哎呦我呸! 2022-09-12 01:48:14

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

输入框要有name才可以

紫瑟鸿黎 2022-09-12 01:48:14

首先处理POST请求的body必须使用另一个中间件koa-bodyparser,你没有导入,另外你中间件的顺序有问题。
路由监听事件之后先注册bodyparser,再注册router.routes(),最后监听3000端口

如何视而不见 2022-09-12 01:48:14

使用koa-bodyparser就可以通过到ctx.request.body来获取post过来的参数了


参考:https://www.cnblogs.com/myzy/...

音栖息无 2022-09-12 01:48:14

尴尬我也遇到这个问题了。

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文