# 使用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())