Socket
Book a DemoInstallSign in
Socket

koa-xml-body

Package Overview
Dependencies
Maintainers
1
Versions
9
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

koa-xml-body

koa middleware to parse xml request body

latest
Source
npmnpm
Version
3.0.0
Version published
Weekly downloads
2.5K
-4.67%
Maintainers
1
Weekly downloads
 
Created
Source

koa-xml-body

test npm version download times download times FOSSA Status

Parse xml request body for Koa

Install

NPM

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 version 2.x or 3.x;
  • For koa@1.x, use koa-xml-body@1.x.

Options

  • encoding: requested encoding. Default is utf8. If not set, the lib will retrive it from content-type(such as content-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 {}. See xml2js 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);
    }
}))

Licences

MIT

FOSSA Status

Keywords

xml

FAQs

Package last updated on 15 Jun 2023

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts