# koa-bodyparser **Repository Path**: towardly/koa-bodyparser ## Basic Information - **Project Name**: koa-bodyparser - **Description**: koa2 解析请求内容(body-parser), 包含基本的请求实体(raw, text, json, urlencoded) - **Primary Language**: NodeJS - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 0 - **Created**: 2018-07-13 - **Last Updated**: 2023-08-23 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README ## koa-bodyparser-base 一个基于 [raw-body](https://github.com/stream-utils/raw-body "raw-body") 的 `koa` 请求内容解析器;支持的解析类型有 `text`、`form`、`json`、`raw` 。 ### 安装 ```javascript npm install koa-bodyparser-base ``` ### 使用 ```javascript 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) ```javascript 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**: 解析相应格式需要匹配的后缀格式,支持扩展每一种请求所兼容的类型,例如: ```javascript app.use(bodyparser({ extendTypes: { // 转换请求类型(content-type) 为 `application/x-javascript` 的请求内容为 `json` 格式。 json: ['application/x-javascript'] } })); ``` * **disableBodyParse**:可以动态的通过设置 `ctx.disableBodyParse = true` 来禁用解析。 ```javascript app.use(async (ctx, next) => { if (ctx.path === '/disable') { ctx.disableBodyParse = true; } await next(); }); app.use(bodyparser()); ``` > **备注**: > 1. `limit` 参数为 [bytes](https://github.com/visionmedia/bytes.js "bytes") 所支持的参数格式; > 2. `encoding` 参数为 [iconv-lite](https://github.com/ashtuchkin/iconv-lite "iconv-lite") 所支持的编码格式。 > 3. 如果格式为 `form` 返回的是 `querystring.parse()` 解析后的对象,该对象跟普通的 `Object` 是不同的,详情参考:[querystring_parse](http://nodejs.cn/api/querystring.html#querystring_querystring_parse_str_sep_eq_options "querystring") ### License [MIT](https://gitee.com/towardly/koa-bodyparser/blob/master/LICENSE "MIT")