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
and res.raw
instead of FastifyRequest
and FastifyReply
. 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 the headers
property on the Incoming Request
, and res.setHeader()
should be used for setting a header on the ServerResponse