koa-bodyparser v4.4.1
koa-bodyparser
A body parser for koa, based on co-body. support json, form and text type body.
Notice: this module doesn't support parsing multipart format data, please use
@koa/multerto parse multipart format data.
Install
Usage
const Koa = require('koa');
const bodyParser = require('koa-bodyparser');
const app = new Koa();
app.use(bodyParser());
app.use(async ctx => {
// the parsed body will store in ctx.request.body
// if nothing was parsed, body will be an empty object {}
ctx.body = ctx.request.body;
});Options
- enableTypes: parser will only parse when request type hits enableTypes, support
json/form/text/xml, default is['json', 'form']. - encoding: requested encoding. Default is
utf-8byco-body. - formLimit: limit of the
urlencodedbody. If the body ends up being larger than this limit, a 413 error code is returned. Default is56kb. - jsonLimit: limit of the
jsonbody. Default is1mb. - textLimit: limit of the
textbody. Default is1mb. - xmlLimit: limit of the
xmlbody. Default is1mb. - strict: when set to true, JSON parser will only accept arrays and objects. Default is
true. See strict mode inco-body. In strict mode,ctx.request.bodywill always be an object(or array), this avoid lots of type judging. But text body will always return string type. detectJSON: custom json request detect function. Default is
null.app.use(bodyParser({ detectJSON: function (ctx) { return /\.json$/i.test(ctx.path); } }));extendTypes: support extend types:
app.use(bodyParser({ extendTypes: { json: ['application/x-javascript'] // will parse application/x-javascript type body as a JSON string } }));onerror: support custom error handle, if
koa-bodyparserthrow an error, you can customize the response like:app.use(bodyParser({ onerror: function (err, ctx) { ctx.throw(422, 'body parse error'); } }));disableBodyParser: you can dynamic disable body parser by set
ctx.disableBodyParser = true.app.use(async (ctx, next) => { if (ctx.path === '/disable') ctx.disableBodyParser = true; await next(); }); app.use(bodyParser());
Raw Body
You can access raw request body by ctx.request.rawBody after koa-bodyparser when:
koa-bodyparserparsed the request body.ctx.request.rawBodyis not present beforekoa-bodyparser.
Koa 1 Support
To use koa-bodyparser with koa@1, please use bodyparser 2.x.
npm install koa-bodyparser@2 --saveLicences
2 years ago
3 years ago
6 years ago
8 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
11 years ago
11 years ago
11 years ago
11 years ago
11 years ago
11 years ago
11 years ago
11 years ago
11 years ago
12 years ago
12 years ago
12 years ago
12 years ago
12 years ago
