如何在Middelware [Nest Fastify]中获取/设置请求/响应标头?

时间:2020-09-12 00:54:54

标签: node.js nestjs fastify

如何使用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/

1 个答案:

答案 0 :(得分:1)

带有Nest的中间件是Express风格的中间件。尽管可以使用Fastify,但请注意,您实际上是在访问req.rawres.raw而不是FastifyRequestFastifyReply。请注意,Guardsinterceptors在使用Fastify方面通常比标准中间件更成功。

话虽如此,req.headers应该拉回Incoming Request上的headers属性,而res.setHeader()应该用于在{{1} }