Request
The first parameter of the handler function is Request.
Request is a core Fastify object containing the following fields:
query- the parsed querystring, its format is specified byquerystringParserbody- the bodyparams- the params matching the URLheaders- the headers getter and setterraw- the incoming HTTP request from Node corereq(deprecated, use.rawinstead) - the incoming HTTP request from Node coreserver- The Fastify server instance, scoped to the current encapsulation contextid- the request IDlog- the logger instance of the incoming requestip- the IP address of the incoming requestips- an array of the IP addresses, ordered from closest to furthest, in theX-Forwarded-Forheader of the incoming request (only when thetrustProxyoption is enabled)hostname- the host of the incoming request (derived fromX-Forwarded-Hostheader when thetrustProxyoption is enabled). For HTTP/2 compatibility it returns:authorityif no host header exists.protocol- the protocol of the incoming request (httpsorhttp)method- the method of the incoming requesturl- the URL of the incoming requestrouterMethod- the method defined for the router that is handling the requestrouterPath- the path pattern defined for the router that is handling the requestis404- true if request is being handled by 404 handler, false if it is notconnection- Deprecated, usesocketinstead. The underlying connection of the incoming request.socket- the underlying connection of the incoming requestcontext- A Fastify internal object. You should not use it directly or modify it. It is useful to access one special key:context.config- The routeconfigobject.
Headers
The request.headers is a getter that returns an Object with the headers of the incoming request.
You can set custom headers like this:
request.headers = {
'foo': 'bar',
'baz': 'qux'
}
This operation will add to the request headers the new values that can be read calling request.headers.bar.
Moreover, you can still access the standard request's headers with the request.raw.headers property.
fastify.post('/:params', options, function (request, reply) {
console.log(request.body)
console.log(request.query)
console.log(request.params)
console.log(request.headers)
console.log(request.raw)
console.log(request.server)
console.log(request.id)
console.log(request.ip)
console.log(request.ips)
console.log(request.hostname)
console.log(request.protocol)
console.log(request.url)
console.log(request.routerMethod)
console.log(request.routerPath)
request.log.info('some info')
})