# 使用cli生成拦截器

nest g itc [itc_name] [file_path]

# 手动创建拦截器

import {
  CallHandler,
  ExecutionContext,
  Injectable,
  NestInterceptor
} from '@nestjs/common';
import { Observable } from 'rxjs';

@Injectable()
export class TestInterceptor implements NestInterceptor {
  intercept(context: ExecutionContext, next: CallHandler): Observable<any> {
    return next.handle();
  }
}

# 局部拦截器

  • 使用UseInterceptors修饰Controller或者特定 方法



 



 





import { UseInterceptors } from '@nestjs/common'

@Controller()
@UseInterceptors(TestInterceptor)
export class TestController {

  @Get('/test')
  @UseInterceptors(TestInterceptor)
  say() {
    // dosomething...
  }
}

# 全局拦截器





 

import { TestMiddleware } from '..'

// ... 
const app = await NestFactory.create(AppModule);
app.useGlobalIntercepts(new TestInterceptor())