Я хочу регистрировать входящие запросы и исходящие ответы в NestJs. Я взял информацию отсюда Запись запроса / ответа в Nest.js и из документов Перехват NestJs .
Было бы здорово добиться этого, не используя внешнийпакетов, поэтому я бы очень предпочел нативное решение "Nest".
Для ведения журнала запросов я в настоящее время использую этот код
@Injectable()
export class RequestInterceptor implements NestInterceptor {
private logger: Logger = new Logger(RequestInterceptor.name);
intercept(context: ExecutionContext, next: CallHandler): Observable<any> {
const {
originalUrl,
method,
params,
query,
body,
} = context.switchToHttp().getRequest();
this.logger.log({
originalUrl,
method,
params,
query,
body,
});
return next.handle();
}
}
Это будет регистрировать следующий результат для GET /users
Я также хочу зарегистрировать исходящий ответ. В настоящее время я использую этот перехватчик
@Injectable()
export class ResponseInterceptor implements NestInterceptor {
private logger: Logger = new Logger(ResponseInterceptor.name);
intercept(context: ExecutionContext, next: CallHandler): Observable<any> {
const { statusCode } = context.switchToHttp().getResponse();
return next.handle().pipe(
tap(() =>
this.logger.log({
statusCode,
}),
),
);
}
}
Это будет регистрировать следующий результат для GET /users
, но как я могу получить доступданные, которые были отправлены обратно клиенту?