koa-bodyparser-base
v0.0.3
Published
koa2 解析请求内容(body-parser), 包含基本的请求实体(raw, text, json, urlencoded)
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
