3. 请求数据获取 - 3.3 koa-bodyparser中间件

优质
小牛编辑
129浏览
2023-12-01

原理

对于POST请求的处理,koa-bodyparser中间件可以把koa2上下文的formData数据解析到ctx.request.body中

安装koa2版本的koa-bodyparser@3中间件

  1. npm install --save koa-bodyparser@3

举个例子

例子代码

demo源码

https://github.com/ChenShenhai/koa2-note/blob/master/demo/request/post-middleware.js

  1. const Koa = require('koa')
  2. const app = new Koa()
  3. const bodyParser = require('koa-bodyparser')
  4. // 使用ctx.body解析中间件
  5. app.use(bodyParser())
  6. app.use( async ( ctx ) => {
  7. if ( ctx.url === '/' && ctx.method === 'GET' ) {
  8. // 当GET请求时候返回表单页面
  9. let html = `
  10. <h1>koa2 request post demo</h1>
  11. <form method="POST" action="/">
  12. <p>userName</p>
  13. <input name="userName" /><br/>
  14. <p>nickName</p>
  15. <input name="nickName" /><br/>
  16. <p>email</p>
  17. <input name="email" /><br/>
  18. <button type="submit">submit</button>
  19. </form>
  20. `
  21. ctx.body = html
  22. } else if ( ctx.url === '/' && ctx.method === 'POST' ) {
  23. // 当POST请求的时候,中间件koa-bodyparser解析POST表单里的数据,并显示出来
  24. let postData = ctx.request.body
  25. ctx.body = postData
  26. } else {
  27. // 其他请求显示404
  28. ctx.body = '<h1>404!!! o(╯□╰)o</h1>'
  29. }
  30. })
  31. app.listen(3000, () => {
  32. console.log('[demo] request post is starting at port 3000')
  33. })

启动例子

  1. node post-middleware.js

访问页面

request-post-form

提交表单发起POST请求结果显示

request-post-result