【发布时间】:2020-09-20 17:45:00
【问题描述】:
我正在使用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();
}
}
可能我用了错误的方法来解决我的问题
【问题讨论】:
-
我几乎可以肯定你可以将装饰器放在你想要拦截的请求之上,而不是整个控制器
-
@MorKadosh 没错,非常感谢!
标签: javascript angular typescript nestjs