koa-bodyparser-base
v0.0.3
Published
koa2 解析请求内容(body-parser), 包含基本的请求实体(raw, text, json, urlencoded)
Downloads
2
Maintainers
Readme
koa-bodyparser-base
一个基于 raw-body 的 koa
请求内容解析器;支持的解析类型有 text
、form
、json
、raw
。
安装
npm install koa-bodyparser-base
使用
let Koa = require('koa');
let bodyParser = require('koa-bodyparser-base');
let app = new Koa();
let.use(bodyParser());
let.use(async (ctx) => {
// 解析后的请求内容将存放到 ctx.request.body 上
// 如果没有解析到对应的请求,则 body 将是 undefined
ctx.body = ctx.request.body;
});
配置选项(options)
bodyParser([options]);
- json: 解析
json
请求时,使用raw-body
解析时需要的参数,默认:{ limit: '1mb', encoding: true }
- form: 解析
form
请求时,使用raw-body
解析时需要的参数,默认{ limit: '56kb', encoding: true }
。 - text: 解析
text
请求时,使用raw-body
解析时需要的参数,默认{ limit: '1mb', encoding: true }
。 - raw: 解析
raw
请求时,使用raw-body
解析时需要的参数,默认{ limit: '100kb', encoding: true }
。 - extendTypes: 解析相应格式需要匹配的后缀格式,支持扩展每一种请求所兼容的类型,例如:
app.use(bodyparser({ extendTypes: { // 转换请求类型(content-type) 为 `application/x-javascript` 的请求内容为 `json` 格式。 json: ['application/x-javascript'] } }));
- disableBodyParse:可以动态的通过设置
ctx.disableBodyParse = true
来禁用解析。app.use(async (ctx, next) => { if (ctx.path === '/disable') { ctx.disableBodyParse = true; } await next(); }); app.use(bodyparser());
备注:
limit
参数为 bytes 所支持的参数格式;encoding
参数为 iconv-lite 所支持的编码格式。- 如果格式为
form
返回的是querystring.parse()
解析后的对象,该对象跟普通的Object
是不同的,详情参考:querystring_parse