如何在中间件 [Nestjs Fastify] 中 get/set request/response header?
How to get/set request/response header in middelware [Nest Fastify]?
如何使用 Fastify 在 NestJS 中注入请求 header。
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();
}
}
嵌套文档中没有关于 fastify 中间件的参考:https://docs.nestjs.com/middleware
我已经阅读了 fastify 文档但没有成功:https://www.fastify.io/docs/v1.13.x/Reply/
&https://www.fastify.io/docs/v1.13.x/Request/
带 Nest 的中间件是 Express-style 中间件。虽然可以使用 Fastify,但请注意,您实际上是在访问 req.raw
和 res.raw
,而不是 FastifyRequest
和 FastifyReply
。 Guards and interceptors 在使用 Fastify 时通常比使用标准中间件更成功,请注意。
综上所述,req.headers
应该拉回 headers
属性 Incoming Request
, and res.setHeader()
应该用于设置 header ServerResponse
如何使用 Fastify 在 NestJS 中注入请求 header。
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();
}
}
嵌套文档中没有关于 fastify 中间件的参考:https://docs.nestjs.com/middleware
我已经阅读了 fastify 文档但没有成功:https://www.fastify.io/docs/v1.13.x/Reply/ &https://www.fastify.io/docs/v1.13.x/Request/
带 Nest 的中间件是 Express-style 中间件。虽然可以使用 Fastify,但请注意,您实际上是在访问 req.raw
和 res.raw
,而不是 FastifyRequest
和 FastifyReply
。 Guards and interceptors 在使用 Fastify 时通常比使用标准中间件更成功,请注意。
综上所述,req.headers
应该拉回 headers
属性 Incoming Request
, and res.setHeader()
应该用于设置 header ServerResponse