【发布时间】:2022-02-03 19:37:36
【问题描述】:
我想为 NestJS 框架 (v8) 中的所有响应添加带有值的自定义标头。我认为正确的方法是使用全局拦截器,但我不知道该怎么做。
我正在添加我的拦截器:
app.useGlobalInterceptors(new HeadersInterceptor());
我找到了多种方法,但没有一种方法有效。最常见的样子:
import { CallHandler, ExecutionContext, Injectable, NestInterceptor } from '@nestjs/common';
import { Observable, tap } from 'rxjs';
@Injectable()
export class HeadersInterceptor implements NestInterceptor {
intercept(context: ExecutionContext, next: CallHandler): Observable<any> {
return next.handle().pipe(
tap(() => {
const res = context.switchToHttp().getResponse();
res.setHeader('my-global-header', 'important-value');
}),
);
}
}
但我收到一个错误:
res.setHeader is not a function
编辑:从正确答案来看,我应该提到我也在使用 GraphQL。
【问题讨论】:
标签: javascript typescript graphql nestjs response-headers