1.1.9 ā€¢ Published 7 years ago

http-body-parser v1.1.9

Weekly downloads
5
License
ISC
Repository
github
Last release
7 years ago

http-body-parser

NPM version build status Coveralls David deps node version Gittip

šŸ”„ A body parser for koa, express. support json, form, text, multipart and stream type body.

Install

NPM

Usage

Koa

const Koa = require('koa');
const bodyParser = require('http-body-parser').koa;

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;
});

Express

const express = require('express');
const bodyParser = require('http-body-parser').express;

const app = express();
app.use(bodyParser({}));

server.use('/', function(req, res) {
  res.send(req.body)
})

Features

  • Based on the ES6 syntax, the code is concise
  • No third party module dependent
  • Support Koa and Express

Options

  • default options
{
    enableTypes: ['json', 'form', 'text', 'multipart', 'stream'],
    json: {
      limit: 1024*1024,
      strict: true,
      extendsTypes: []
    },
    text: {
      limit: 1024*1024,
      extendsTypes: []
    },
    form: {
      limit: 56*1024,
      extendsTypes: []
    },
    stream: {
      limit: 1024*1024,
      path: `the operating system's default directory`
    },
    multipart: {
      limit: 1024*1024,
      path: `the operating system's default directory`
    }
}
  • enableTypes: parser will only parse when request type hits enableTypes, default is ['json', 'form', 'text', 'multipart', 'stream'].
  • encode: requested encoding. Default is utf-8.
  • limit: limit of the body. If the body ends up being larger than this limit, a 413 error code is returned.
  • strict: when set to true, JSON parser will only accept arrays and objects. Default is true.
  • extendTypes: support extend types, eg: application/x-javascript
  • path: which folder the uploaded files should be stored, active on multipart, stream

Raw Body

You can access raw request body by ctx.request.rawBody