Tiniest body parser in the universe. Built for modern Node.js.
Check out deno-libs/parsec for Deno port.
async
/ await
```sh
pnpm i milliparsec
bun i milliparsec ```
Use a middleware inside a server:
```js import { createServer } from 'node:http' import { json } from 'milliparsec'
const server = createServer(async (req: ReqWithBody, res) => { await json()(req, res, (err) => void err && console.log(err))
res.setHeader('Content-Type', 'application/json')
res.end(JSON.stringify(req.body)) }) ```
```ts import { App } from '@tinyhttp/app' import { urlencoded } from 'milliparsec'
new App()
.use(urlencoded())
.post('/', (req, res) => void res.send(req.body))
.listen(3000, () => console.log(Started on http://localhost:3000
))
```
raw(req, res, cb)
Minimal body parsing without any formatting.
text(req, res, cb)
Converts request body to string.
urlencoded(req, res, cb)
Parses request body using new URLSearchParams
.
json(req, res, cb)
Parses request body using JSON.parse
.
multipart(req, res, cb)
Parses request body using multipart/form-data
content type and boundary. Supports files as well.
js
// curl -F "textfield=textfield" -F "someother=textfield with text" localhost:3000
await multipart()(req, res, (err) => void err && console.log(err))
res.end(req.body) // { textfield: "textfield", someother: "textfield with text" }
custom(fn)(req, res, cb)
Custom function for parsec
.
js
// curl -d "this text must be uppercased" localhost:3000
await custom(
req,
(d) => d.toUpperCase(),
(err) => {}
)
res.end(req.body) // "THIS TEXT MUST BE UPPERCASED"
The parsec is a unit of length used to measure large distances to astronomical objects outside the Solar System.