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/multer
to 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-8
byco-body
. - formLimit: limit of the
urlencoded
body. If the body ends up being larger than this limit, a 413 error code is returned. Default is56kb
. - jsonLimit: limit of the
json
body. Default is1mb
. - textLimit: limit of the
text
body. Default is1mb
. - xmlLimit: limit of the
xml
body. 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.body
will 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-bodyparser
throw 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-bodyparser
parsed the request body.ctx.request.rawBody
is not present beforekoa-bodyparser
.
Koa 1 Support
To use koa-bodyparser
with koa@1, please use bodyparser 2.x.
npm install koa-bodyparser@2 --save
Licences
2 years ago
2 years ago
5 years ago
7 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 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
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