0.0.3 • Published 6 years ago

koa-bodyparser-base v0.0.3

Weekly downloads
2
License
MIT
Repository
-
Last release
6 years ago

koa-bodyparser-base

一个基于 raw-bodykoa 请求内容解析器;支持的解析类型有 textformjsonraw

安装

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 来禁用解析。
    ```javascript
    app.use(async (ctx, next) => {
      if (ctx.path === '/disable') {
        ctx.disableBodyParse = true;
      }
      await next();
    });
    app.use(bodyparser());
    ```

    备注

    1. limit 参数为 bytes 所支持的参数格式;
    2. encoding 参数为 iconv-lite 所支持的编码格式。
    3. 如果格式为 form 返回的是 querystring.parse() 解析后的对象,该对象跟普通的 Object 是不同的,详情参考:querystring_parse

License

MIT