请求和相应

# Koa2 GET请求数据以及获取GET数据

在ko2a中,获取GET请求数据源头是koa中request对象中的query方法或querystring方法,query返回是格式化好的参数对象,querystring返回的是请求字符串,由于ctx对request的API有直接引用的方式,所以获取GET请求数据有两个途径。

1.是从上下文中直接获取 请求对象ctx.query,返回如 { a:1, b:2 }

请求字符串 ctx.querystring,返回如 a=1&b=2

2.是从上下文的request对象中获取

请求对象ctx.request.query,返回如 { a:1, b:2 }

请求字符串 ctx.request.querystring,返回如 a=1&b=2

# koa2 使用原生nodejs获取POST提交数据

POST请求参数获取****原理

对于POST请求的处理,koa2没有封装获取参数的方法,需要通过解析上下文context中的原生node.js请求对象req,将POST表单数据解析成query string(例如:a=1&b=2&c=3),再将query string 解析成JSON格式(例如:{"a":"1", "b":"2", "c":"3"})

**注意:**ctx.request是context经过封装的请求对象,ctx.req是context提供的node.js原生HTTP请求对象,同理ctx.response是context经过封装的响应对象,ctx.res是context提供的node.js原生HTTP请求对象。 具体koa2 API文档可见 https://github.com/koajs/koa/blob/master/docs/api/context.md#ctxreq

# Koa post提交数据koa-bodyparser模块

原理:

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

koa-bodyparser模块的使用:

1、安装 koa-bodyparser

npm install --save koa-bodyparser
1

2、安装 koa-bodyparser 引入配置中间件

var Koa = require('koa');
var bodyParser = require('koa-bodyparser');
var app = new Koa();
app.use(bodyParser());
 
app.use(async ctx => { 
  ctx.body = ctx.request.body;
});
1
2
3
4
5
6
7
8

3、通过****ctx.request.body 获取post提交的数据

# 总结

  • ctx 即 res 和 req的集合,用来处理接收和返回数据

  • ctx.query 获取get请求的参数集合

  • ctx.request.body 获取post请求的参数集合

  • ctx.body 设置响应数据(引入koa-bodyparser模块)

上次更新: 2022/05/12 14:57:53
最近更新
01
关于我
07-14
02
科学上网
11-15
03
OSS+CDN
09-23
更多文章>
极昼青春
买辣椒也用券