NodeJS Доступ к объекту в конструкторе родительского класса из дочернего класса - PullRequest
0 голосов
/ 24 апреля 2020

Я пытаюсь создать класс контроллера, который будет инициализировать для меня все мои маршруты с ExpressJS вот базовый c пример того, что у меня есть

class Test extends Controller {
  constructor(App) {
    const Routes = [
      {
        url: '/hello',
        execute: this.world
      }
    ];
    super({ Routes });
  };

  world(req, res) {
    return res.json({success: true, msg: "Hello World."});
  }
}

контроллер Класс

class Controller {
  constructor({ Routes }) {
    // I want to be able to access the items from the Routes Object here so I can loop over them and initialize them
  }
}

Мне нужен способ передать этот маршрут Object в класс Controller. Он должен иметь URL, так что если у маршрута есть такие параметры, как /hello/:id, тогда он будет определен там, и он необходимо знать, какую функцию выполнять в классе Test.

Проблема в том, что вам не разрешен доступ к параметру this до вызова супер, и вы также не можете получить к нему доступ в супер. Есть ли способ, которым я могу получить этот объект?

Возможно ли это, или я упускаю что-то действительно очевидное

1 Ответ

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

Определите ваши маршруты как static const routes и передайте дочерний класс в конструкторе как

super(Test)

Из родительского элемента вы можете получить доступ в конструкторе

constructor(Test) { this.routes = Test.routes }

Это должно решить проблему.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...