如何使用Fastify在NestJS中插入请求标头。
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();
}
}
没有关于在Nest文档上固定中间件的参考:https://docs.nestjs.com/middleware
我已阅读Fastify文档,但未成功:https://www.fastify.io/docs/v1.13.x/Reply/ &https://www.fastify.io/docs/v1.13.x/Request/
答案 0 :(得分:1)
带有Nest的中间件是Express风格的中间件。尽管可以使用Fastify,但请注意,您实际上是在访问req.raw
和res.raw
而不是FastifyRequest
和FastifyReply
。请注意,Guards和interceptors在使用Fastify方面通常比标准中间件更成功。
话虽如此,req.headers
应该拉回Incoming Request
上的headers
属性,而res.setHeader()
应该用于在{{1} }