Body parsing middleware, supports jsontextrawurlencodedmultipart.
Based on raw-body, busboy, multer, qs.
$ npm install trek-body-parser --save
'use strict'constEngine=require('trek-engine')constbodyParser=require('..')asyncfunctionstart(){constapp=newEngine()app.use(bodyParser())app.use(({req, res})=>{res.body=req.body})app.on('error',(err,ctx)=>{console.log(err)})app.run(3000)}start().catch(err=>console.log(err))bodyParser(options)jsonurlencodedis enabled by default.{json: true,urlencoded: true,skip: false,// customtext: { ... }, ... }
.json(options){detect: false,encoding: 'utf8',limit: '1mb',parse: JSON.parse,reviver: undefined,strict: true,type: ['application/json','application/json-patch+json','application/vnd.api+json','application/csp-report'],transform(raw,{ parse, reviver, strict }){constempty=raw.length===0if(strict){if(empty)return{}if(!STRICT_JSON_REG.test(raw)){consterr=newError('Invalid JSON, only supports object and array')err.status=400throwerr}}if(empty)returnrawreturnparse(raw,reviver)}}
.text(options){detect: false,encoding: 'utf8',limit: '1mb',type: 'text/plain'}
.raw(options){detect: false,encoding: null,limit: '1mb',type: 'application/octet-stream'}
.urlencoded(options){detect: false,encoding: 'utf8',limit: '56k',parse: qs.parse,type: 'application/x-www-form-urlencoded',transform(raw,{ parse }){returnparse(raw)}}
.multipart(options)Creates multer instance.
.any().array(fieldname[, maxCount]).fields(fields)fields:[{name: 'avatar',maxCount: 1},{name: 'gallery',maxCount: 8}]
.none().single(fieldname)
.busboy