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.rawandres.rawinstead ofFastifyRequestandFastifyReply. Guards and interceptors are usually more successful at working with Fastify than standard middleware are, as a heads up.With all that said,
req.headersshould pull back theheadersproperty on theIncoming Request, andres.setHeader()should be used for setting a header on theServerResponse