【问题标题】:How to intercept specific request如何拦截特定请求
【发布时间】:2020-09-20 17:45:00
【问题描述】:

我正在使用NestJSAngular 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


【解决方案1】:

只需将装饰器放在方法之上而不是类

  @Get()
  @UseInterceptors(ObjectsInterceptor)
  async findAll(): Promise<ObjectDto[]> {
    // Request which should be intercepted
    ...
  }

【讨论】:

    猜你喜欢
    • 2014-05-26
    • 2015-08-09
    • 2015-06-25
    • 1970-01-01
    • 1970-01-01
    • 2010-11-21
    • 1970-01-01
    • 1970-01-01
    • 2019-03-03
    相关资源
    最近更新 更多