@Movsar-Khalakhoev

Как установить декоратор на метод, который не является эндпоинтом?

Здравствуйте!

Вопрос по NestJS.
Стоит задача сделать так, чтобы при вызове метода secondMethod контроллера из метода firstMethod срабатывал кастомный декоратор. На данный момент этого не происходит. Я заметил, что срабатывают только те декораторы, которые повешаны именно на эндпоинты, т. е. на методы, которые помечены декораторами Get, Post, Patch и т.д.

class Controller {
      
      @Get('/')
      firstMethod() {
        secondMethod()
      }
      
      @CustomDecorator()
      secondMethod() {}
    }


Прикрепил минимальную версию кода. Не работает CustomDecorator.

Спасибо за помощь!
  • Вопрос задан
  • 93 просмотра
Решения вопроса 1
@dimuska139
Backend developer
Вот так сделайте декоратор - заработает:
const CustomDecorator = () => (target: Object, propertyKey: string, descriptor: PropertyDescriptor) => {
  let sourceMethod = descriptor.value;
  descriptor.value = function (...args: any[]) {
    console.log("before");
    let result = sourceMethod.apply(this, args);
    console.log("after");
    return result;
  }
}

P.s. вот тут можете почитать более детально
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы