我正在使用NestJS
和Angular 2
,它们与Interceptors
的工作方式相似。我想找到最佳实践,以确定一些特定的要求来做一些额外的工作。
要声明Interceptor
(谁会听Controller
(在NestJS
中),我应该使用以下逻辑:
@UseInterceptors(ObjectsInterceptor)
@Controller('objects')
export class ObjectsController {
@Get()
async findAll(): Promise<ObjectDto[]> {
// Request which should be intercepted
...
}
@Get(':slug')
async findOne(@Params('slug') slug: string): Promise<ObjectDto> {
// Request which shouldn't be intercepted
...
}
}
在Interceptor
中:
@Injectable()
export class ObjectsInterceptor implements NestInterceptor {
intercept(context: ExecutionContext, next: CallHandler<any>): Observable<any> {
// Some logic to detect specific request
return next.handle();
}
}
可能我用错误的方式解决了问题
答案 0 :(得分:1)
将装饰器放在方法上方,而不是类
@Get()
@UseInterceptors(ObjectsInterceptor)
async findAll(): Promise<ObjectDto[]> {
// Request which should be intercepted
...
}