How do I use Interceptors in nestjs?
For further actions, you may consider blocking this person and/or reporting abuse
How do I use Interceptors in nestjs?
For further actions, you may consider blocking this person and/or reporting abuse
PubNub Developer Relations -
XWiki -
Nicolas Frizzarin -
Pranav Bakare -
Top comments (2)
O que é um Interceptor em NestJS?
Em NestJS, um interceptor é uma classe que implementa a interface
NestInterceptor
e é usada para interceptar e transformar as requisições ou respostas de um controlador ou método. Interceptores são úteis para diversas tarefas, como manipulação de dados, tratamento de erros, logging, caching, entre outras.Diferença entre um Interceptor Global e um Não Global
Criando e Implementando um Interceptor em NestJS
1. Criar o Interceptor
Arquivo:
logging.interceptor.ts
Explicação:
LoggingInterceptor
implementa a interfaceNestInterceptor
.intercept
calcula o tempo de execução e loga essa informação.2. Aplicar um Interceptor Não Global
Para aplicar o interceptor a um controlador ou método específico, usamos o decorator
@UseInterceptors
.Arquivo:
cats.controller.ts
Explicação:
LoggingInterceptor
é aplicado apenas ao métodofindAll
doCatsController
.LoggingInterceptor
é aplicado a todos os métodos doCatsController
.3. Aplicar um Interceptor Global
Para aplicar um interceptor global, registramos o interceptor no módulo principal da aplicação.
Arquivo:
app.module.ts
Explicação:
LoggingInterceptor
como um interceptor global no módulo principal da aplicação.APP_INTERCEPTOR
para indicar que oLoggingInterceptor
deve ser aplicado globalmente.Resumo das Etapas
logging.interceptor.ts
): Define a lógica do interceptor.cats.controller.ts
): Usa@UseInterceptors
no método específico.cats.controller.ts
): Usa@UseInterceptors
no controlador.app.module.ts
): Registra o interceptor como global no módulo principal da aplicação.Você precisa configurar o middleware em um módulo do seu aplicativo. Normalmente, isso é feito no módulo principal (
AppModule
).