控制器上可以启用拦截器,方法里面也可以;还可以全局启用,待会把控制器的去掉

This commit is contained in:
Jeremy Yin 2019-06-19 23:00:44 +08:00
parent 9d695d3f52
commit de3558a97d
3 changed files with 11 additions and 1 deletions

View File

@ -5,6 +5,8 @@ import { PostsModule } from './modules/posts/posts.module';
import { DemoMiddleware } from './core/middleware/demo.middleware'
import { APP_GUARD } from '@nestjs/core';
import { DemoRolesGuard } from './core/guards/demo-roles.guard'
import { APP_INTERCEPTOR } from '@nestjs/core';
import { LoggingInterceptor } from './core/interceptors/logging.interceptor'
@ -16,6 +18,10 @@ import { DemoRolesGuard } from './core/guards/demo-roles.guard'
{
provide: APP_GUARD,
useClass: DemoRolesGuard,
},
{
provide: APP_INTERCEPTOR,
useClass: LoggingInterceptor,
}
],
})

View File

@ -4,6 +4,8 @@ import { Observable } from 'rxjs';
@Injectable()
export class LoggingInterceptor implements NestInterceptor {
intercept(context: ExecutionContext, next: CallHandler): Observable<any> {
console.log('I am a interceptor!')
return next.handle();
}
}

View File

@ -1,13 +1,15 @@
import { Controller, Get, Post, Req, Query, Headers, Param, Body, HttpException, HttpStatus, ForbiddenException, UseFilters, UsePipes, ValidationPipe, ParseIntPipe, UseGuards, SetMetadata } from '@nestjs/common';
import { Controller, Get, Post, Req, Query, Headers, Param, Body, HttpException, HttpStatus, ForbiddenException, UseFilters, UsePipes, ValidationPipe, ParseIntPipe, UseGuards, SetMetadata, UseInterceptors } from '@nestjs/common';
import { CreatePostDto } from './post.dto';
import { DemoService } from './providers/demo/demo.service'
import { DemoFilter } from '../../core/filters/demo.filter'
import { DemoAuthGuard } from '../../core/guards/demo-auth.guard'
import { Roles } from '../../core/decorators/roles.decorator'
import { LoggingInterceptor } from '../../core/interceptors/logging.interceptor'
@Controller('posts')
// @UseGuards(DemoAuthGuard)
// @UseFilters(DemoFilter)
@ UseInterceptors(LoggingInterceptor)
export class PostsController {
constructor(private readonly demoService: DemoService) {}