> Работали ли вы с интерцепторами в NestJS (JavaScript)

Уровень: senior · Роль: frontend · Язык: JavaScript · Категория: Технические вопросы

Компании: TrendTech

Стек: JavaScript, Node.js, NestJS

> Пример ответа

Да, я работал с интерцепторами в NestJS. Они используются для перехвата входящих запросов и исходящих ответов, что позволяет централизованно добавлять логику, такую как логирование, трансформация данных или обработка ошибок. Например, я реализовывал интерцептор для логирования времени выполнения запроса:

TYPESCRIPT
import { Injectable, NestInterceptor, ExecutionContext, CallHandler } from '@nestjs/common';
import { Observable } from 'rxjs';
import { tap } from 'rxjs/operators';
@Injectable()
export class LoggingInterceptor implements NestInterceptor {
intercept(context: ExecutionContext, next: CallHandler): Observable<any> {
const now = Date.now();
const request = context.switchToHttp().getRequest();
console.log(`Запрос: ${request.method} ${request.url}`);
return next.handle().pipe(
tap(() => console.log(`Ответ отправлен за ${Date.now() - now}мс`)),
);
}
}

Также применял интерцепторы для форматирования ответов, например, оборачивая их в стандартный объект с полями data и statusCode, или для добавления заголовков безопасности. Интерцепторы удобно подключать глобально, на уровне контроллера или конкретного маршрута через декоратор @UseInterceptors().

> ГОТОВЫ К СЛЕДУЮЩЕМУ СОБЕСЕДОВАНИЮ?

Запустите тренировочную сессию с ИИ и получите детальную обратную связь, чтобы увереннее проходить реальные интервью