How to inject a request header in NestJS using Fastify.
import { FastifyRequest, FastifyReply } from 'fastify'; // fastify types are not valid
@Injectable()
export class TracingMiddleware implements NestMiddleware {
use(req: any, res: any, next: () => void) {
console.log('MyRequestHeaderKey', req.headers['MyRequestHeaderKey']); // find out how to get a header
res.header('MyResponseHeaderKey', 'MyResponseHeaderValue'); // find out how to set headers
next();
}
}
There is no reference for fastify middleware on nest docs: https://docs.nestjs.com/middleware
I have read fastify doc without success: https://www.fastify.io/docs/v1.13.x/Reply/ & https://www.fastify.io/docs/v1.13.x/Request/
Middleware with Nest is Express-style middleware. While it is possible to work with Fastify, do note that you're essentially accessing
req.raw
andres.raw
instead ofFastifyRequest
andFastifyReply
. Guards and interceptors are usually more successful at working with Fastify than standard middleware are, as a heads up.With all that said,
req.headers
should pull back theheaders
property on theIncoming Request
, andres.setHeader()
should be used for setting a header on theServerResponse