Graphql apollo fedaration解析字段时不调用Nestjs拦截器
我正试图用graphql、apollo federation和nestjs创建一个日志拦截器。我正在跟踪并将代码修改为Graphql apollo fedaration解析字段时不调用Nestjs拦截器,graphql,nestjs,apollo-server,Graphql,Nestjs,Apollo Server,我正试图用graphql、apollo federation和nestjs创建一个日志拦截器。我正在跟踪并将代码修改为 import { Injectable, NestInterceptor, ExecutionContext, CallHandler, } from '@nestjs/common'; import { Observable } from 'rxjs'; import { tap } from 'rxjs/operators'; @Injectable() export
import {
Injectable, NestInterceptor, ExecutionContext, CallHandler,
} from '@nestjs/common';
import { Observable } from 'rxjs';
import { tap } from 'rxjs/operators';
@Injectable()
export class LoggingInterceptor implements NestInterceptor {
public intercept(context: ExecutionContext, next: CallHandler): Observable<any> {
console.log('Before...');
const now = Date.now();
return next
.handle()
.pipe(
tap(() => console.log(`After... ${Date.now() - now}ms`)),
);
}
}
在tcpdump中,当我向联合发布graphql请求时,apollo联合和该服务之间存在一个http请求。尽管如此,我的拦截器没有日志。但是,如果我直接向这个ms(没有联邦)发出graphql请求,日志就在那里
还有一个问题,我想捕获响应头和字符串体。我认为这只能在express级别上完成,但不知何故根本不起作用,我尝试了所有的方法
const app: INestApplication = await NestFactory.create(AppModule, new ExpressAdapter(expressApp), {
logger,
});
app.useGlobalInterceptors(new LoggingInterceptor());