Объект данных ответа журнала Nestjs - PullRequest
5 голосов
/ 21 ноября 2019

Я хочу регистрировать входящие запросы и исходящие ответы в 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

enter image description here

Я также хочу зарегистрировать исходящий ответ. В настоящее время я использую этот перехватчик

@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

enter image description here

, но как я могу получить доступданные, которые были отправлены обратно клиенту?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...