Package Exports
- koa-xml-body
- koa-xml-body/lib/index.js
This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (koa-xml-body) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.
Readme
koa-xml-body
Parse xml request body for Koa
Install
Usage
const koa = require('koa')
const xmlParser = require('koa-xml-body')
const app = koa()
app.use(xmlParser())
app.use(function(ctx, next) {
// the parsed body will store in this.request.body
// if nothing was parsed, body will be undefined
ctx.body = ctx.request.body
return next()
})
koa-xml-body
will carefully check and set context.request.body
, so it can intergate well with other body parsers such as koa-bodyparser
:
// ...
const bodyParser = require('koa-bodyparser')
// ...
app.use(xmlParser())
app.use(bodyParser())
Note:
- For
koa@2.x
, use version2.x
or3.x
; - For
koa@1.x
, usekoa-xml-body@1.x
.
Options
- encoding: requested encoding. Default is
utf8
. If not set, the lib will retrive it fromcontent-type
(such ascontent-type:application/xml;charset=gb2312
). - limit: limit of the body. If the body ends up being larger than this limit, a 413 error code is returned. Default is
1mb
. - length: length of the body. When
content-length
is found, it will be overwritten automatically. - onerror: error handler. Default is a
None
. It means it will throws the error. You can config it to customize the response. - xmlOptions: options which will be used to parse xml. Default is
{}
. Seexml2js Options
for details. - key: A chance to redefine what the property name to use instead of the default
body (ctx.request.body)
.
app.use(xmlParser({
limit: 128,
encoding: 'utf8', // lib will detect it from `content-type`
xmlOptions: {
explicitArray: false
},
key: 'xmlBody', // lib will check ctx.request.xmlBody & set parsed data to it.
onerror: (err, ctx) => {
console.error(err);
ctx.throw(err.status, err.message);
}
}))