Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/nashaofu/koa-parser
a body parser for koa
https://github.com/nashaofu/koa-parser
body-parser bodyparser koa koa-middleware koa2 koajs
Last synced: 4 months ago
JSON representation
a body parser for koa
- Host: GitHub
- URL: https://github.com/nashaofu/koa-parser
- Owner: nashaofu
- License: mit
- Created: 2018-01-11T12:00:45.000Z (about 7 years ago)
- Default Branch: master
- Last Pushed: 2023-01-23T23:51:24.000Z (about 2 years ago)
- Last Synced: 2024-04-14T08:33:43.810Z (10 months ago)
- Topics: body-parser, bodyparser, koa, koa-middleware, koa2, koajs
- Language: TypeScript
- Size: 1.35 MB
- Stars: 4
- Watchers: 2
- Forks: 1
- Open Issues: 12
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# koa-parser[![Build Status](https://travis-ci.org/nashaofu/koa-parser.svg?branch=master)](https://travis-ci.org/nashaofu/koa-parser)
a body parser for koa. support json, form(urlencoded), multipart and text type body.## Install
[![NPM](https://nodei.co/npm/koa-parser.png?downloads=true&downloadRank=true&stars=true)](https://nodei.co/npm/koa-parser/)
## Usage
```js
const Koa = require('koa')
const parser = require('koa-parser')const port = 3000
const app = new Koa()app.use(parser())
app.use(async (ctx, next) => {
// if nothing was parsed, body will be undefined
if (ctx.request.body !== undefined) {
ctx.body = ctx.request.body
}
await next()
})app.listen(port)
console.error(`listening on port ${port}`)
```## Screenshot
![default options](./screenshot/1.png)
## Options
```typescript
app.use(parser({
encoding?: string, // requested encoding
error?: (err: any, ctx: Koa.Context) => any, // support custom parser error handle
json?: string | string[], // support json parser types
multipart?: string | string[], // support multipart(form-data) parser types
text?: string | string[], // support text parser types
urlencoded?: string | string[] // support urlencoded(form) parser types
}))
```* **encoding**: requested encoding. Default is ``utf-8``
* **error**: support custom error handle, Default is ``false``. if koa-bodyparser throw an error, you can customize the response like:
```js
app.use(parser({
error (err, ctx) {
console.log(err)
ctx.throw(err, 422)
}
}))
```* **json**: Extended support for json parsing options, The default supported types are ``['application/json', 'application/json-patch+json', 'application/vnd.api+json', 'application/csp-report']``. you can customize the type like:
```js
// json will be support default types and application/x-javascript
app.use(parser({
json: 'application/x-javascript' // You can also pass parameters in an array
}))
```* **multipart**: Extended support for multipart(form-data) parsing options, The default supported types are ``['multipart/form-data']``
* **text**: Extended support for text parsing options, The default supported types are ``['text/plain']``
* **urlencoded**: Extended support for urlencoded(form) parsing options, The default supported types are ``['application/x-www-form-urlencoded']``
## Licences
[MIT](LICENSE)