Request raw body
npm install fastify-raw-body


Adds the raw body to the Fastify request object.
```
npm i fastify-raw-body
| Plugin version | Fastify version |
| ------------- |:---------------:|
| ^5.0.0 | ^5.0.0 |^4.2.1
| | ^4.19.0 |^4.0.0
| | ^4.0.0 |^3.0.0
| | ^3.0.0 |^2.0.0
| | ^2.0.0 |
This plugin will add the request.rawBody. preParsing
It will get the data using the hook.
`js
import Fastify from 'fastify'
const app = Fastify()
await app.register(import('fastify-raw-body'), {
field: 'rawBody', // change the default request.rawBody property name
global: false, // add the rawBody to every request. Default true
encoding: 'utf8', // set it to false to set rawBody as a Buffer Default utf8
runFirst: true, // get the body before any preParsing hook change/uncompress it. Default false
routes: [], // array of routes, global will be ignored, wildcard routes not supported
jsonContentTypes: [], // array of content-types to handle as JSON. Default ['application/json']
})
app.post('/', {
config: {
// add the rawBody to this route. if false, rawBody will be disabled when global is true
rawBody: true
},
handler (req, reply) {
// req.rawBody the string raw body
reply.send(req.rawBody)
}
})
`
> Note
> You need to await the plugin registration to make sure the plugin is ready to use.
> All the routes defined before the plugin registration will be ignored.
> This change has been introduced in Fastify v4.
> Warning
> Setting global: false and then the route configuration { config: { rawBody: true } } willrawBody
> save memory of your server since the is a copy of the body and it will double the memory usage.
> So use it only for the routes that you need to.
It is important to know that setting encoding: false will run addContentTypeParser to add a content type parser for application/json.
This is needed since the default content type parser will set the encoding of the request stream to { parseAs: 'string' }.
If you haven't customized this component, it will be secure as the original one since secure-json-parse` is used under the hood.
Copyright Manuel Spigolon, Licensed under MIT.