3.0.0 • Published 9 years ago

toa-body v3.0.0

Weekly downloads
14
License
MIT
Repository
github
Last release
9 years ago

toa-body

Request body parser for toa.

NPM version Build Status Downloads

toa

Demo

const Toa = require('toa')
const toaBody = require('toa-body')

const app = new Toa()
toaBody(app)

app.use(function * () {
  this.body = yield this.parseBody()
})
app.listen(3000)
const Toa = require('toa')
const toaBody = require('toa-body')

const app = new Toa()
app.use(toaBody()) //  It will try to parse body for every request.

app.use(function () {
  this.body = this.request.body
})
app.listen(3000)

Installation

npm install toa-body

API

const toaBody = require('toa-body')

toaBody(app, options)

It will add parseBody method to context.

  • options.encoding: requested encoding. Default is utf8.
  • options.formLimit: limit of the urlencoded body. If the body ends up being larger than this limit, a 413 error code is returned. Default is 56kb
  • options.jsonLimit: limit of the json body. Default is 1mb
  • options.extendTypes: support extend types:
toaBody(app, {
  extendTypes: {
    json: ['application/x-javascript'] // will parse application/x-javascript type body as a JSON string
  }
}))
  • options.parse: support custom parse:
const parseXml = require('xml2js').parseString

toaBody(app, {
  parse: function (buf) {
    var str = buf.toString('utf8')
    if (!this.is('text/xml')) return str
    // return promise or thunk function for async task
    return function (done) { parseXml(str, done) }
  }
}))

context.parseBody()

return thunk function.

this.body = yield this.parseBody()
this.parseBody()(function (err, body) {
  // this.request.body === body
  this.body = body
})

app.use(toaBody(options))

Toa >= v2.x required.

Licences

(The MIT License)

3.0.0

9 years ago

2.0.2

9 years ago

2.0.1

9 years ago

2.0.0

9 years ago

1.4.1

10 years ago

1.4.0

10 years ago

1.3.2

10 years ago

1.3.1

10 years ago

1.3.0

10 years ago

1.2.2

11 years ago

1.2.0

11 years ago

1.1.0

11 years ago

1.0.2

11 years ago

1.0.1

11 years ago