koa-short-body

1.1.0 • Public • Published

npm mit license build status coverage status deps status

More short API for koa-better-body.

A koa body parser middleware with support for multipart, json, csp-report and urlencoded request bodies. Via formidable and co-better-body. It's fork of koa-better-body

Install

npm i --save koa-short-body
npm test

Usage

For more use-cases see the tests or examples folder.

Extending default types

Every new defined type, will be appended to defaults, see defaults

app.use(koaBody({
  extendTypes: {
    // will parse application/x-javascript type body as a JSON string
    json: ['application/x-javascript'],
    multipart: ['multipart/mixed']
  }
}));

will expects request bodies

application/json
application/json-patch+json
application/vnd.api+json
application/csp-report
application/x-javascript
 
application/x-www-form-urlencoded
 
multipart/form-data
multipart/mixed

get field or file via this

app.use(function * (next) {
    // Get specify fields
    console.log(this.field("field_name"));
 
    // Get received all fields.
    console.log(this.field());
 
    // Get specify fields file (it's must be returns Array<File>)
    console.log(this.file("file"));
 
    // Get all received files
    console.log(this.file());
})

.koaBetterBody

However, koa-short-body have few custom options, see also co-better-body, raw-body and formidable

  • [options] {Object}
    • jsonLimit {String|Number} The byte limit of the JSON body, default 1mb
    • formLimit {String|Number} The byte limit of the form body, default 56kb
    • encoding {String} Sets encoding for incoming form fields, default utf-8
    • encode {String} alias of opts.encoding
    • multipart {Boolean} Support multipart/form-data request bodies, default false
    • extendTypes {Object} extending request types, see defaults
      • multipart {Array} array with multipart types, default ['multipart/form-data']
      • json {Array} array with json types, default ['application/x-www-form-urlencoded']
      • form {Array} array with form types
    • qs {Object} Options that are passing to qs
    • formidable {Object} Options that are passing to formidable
  • return {GeneratorFunction} That you can use with koa or co

formidable options

See node-formidable for a full list of options

  • bytesExpected {Integer} The expected number of bytes in this form, default null
  • maxFields {Integer} Limits the number of fields that the querystring parser will decode, default 1000
  • maxFieldsSize {Integer} Limits the amount of memory a field can allocate in bytes, default 2mb
  • uploadDir {String} Sets the directory for placing file uploads in, default os.tmpDir()
  • hash {String} If you want checksums calculated for incoming files - 'sha1' or 'md5', default false
  • multiples {Boolean} Multiple file uploads or no, default false

qs options

See qs for a full list of options

  • depth {Integer} The parsed object maximum hierarchy depth, default 5
  • delimiter {String|Regex} The query string delimeter, default &
  • arrayLimit {Integer} Maximum array size or -1 to disable arrays, default 20

Author

Charlike Mike Reagent

License MIT license

Copyright (c) 2014-2015 Charlike Mike Reagent, contributors.
Released under the MIT license.


Powered and automated by kdf, February 6, 2015

Versions

Current Tags

  • Version
    Downloads (Last 7 Days)
    • Tag
  • 1.1.0
    1
    • latest

Version History

  • Version
    Downloads (Last 7 Days)
    • Published
  • 1.1.0
    1

Package Sidebar

Install

npm i koa-short-body

Weekly Downloads

1

Version

1.1.0

License

MIT

Last publish

Collaborators

  • ragg