Как игнорировать глобальный кеш на некоторых маршрутах в NestJs - PullRequest
1 голос
/ 10 апреля 2020

Я активирую глобальный кеш с помощью APP_INTERCEPTOR в моем приложении Nest JS. Но сейчас мне нужно игнорировать это на некоторых маршрутах. Как я могу это сделать?

1 Ответ

0 голосов
/ 10 апреля 2020

Я нашел решение. Прежде всего, я сделал CustomHttpCacheInterceptor, который расширяет CacheInterceptor:

@Injectable()
export default class CustomHttpCacheInterceptor extends CacheInterceptor {
  httpServer: any;
  trackBy(context: ExecutionContext): string | undefined {
    const request = context.switchToHttp().getRequest();
    const isGetRequest = request.method === 'GET';
    const requestURl = request.path;
    const excludePaths = ['/my/custom/route'];

    if (
      !isGetRequest ||
      (isGetRequest && excludePaths.some(url => requestURl.includes(url)))
    ) {
      return undefined;
    }
    return requestURl;
  }
}

, а затем добавляю его как глобальный перехватчик кэша в app.module

//...
  providers: [
    AppService,
    {
      provide: APP_INTERCEPTOR,
      useClass: CustomHttpCacheInterceptor,
    },
  ],
//...
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...