Inversify - конструктор с введенным и не введенным аргументом - PullRequest
0 голосов
/ 18 октября 2018

РЕДАКТИРОВАТЬ:

Здесь вы можете найти рабочую копию моего старого теста, который я пытаюсь переписать, используя Inversify.

В server.ts у меня есть этот кусок кода:

public api() {
    let router: express.Router = express.Router();

    API.UserAPI.InitController(router, new UserRepository())

    this.app.use(router);
}

Представьте, что у меня несколько контроллеров.InitController - это статический метод любого контроллера, который использует собственный репозиторий и тот же экземпляр экспресс-маршрутизатора, который будет использоваться для настройки маршрутов API.Пример контроллера:

constructor(router: Router, userRepository: UserRepository) { 
    super(router, userRepository);

    this.InitRoutes(); 
}

public static InitController(router: Router, userRepository: UserRepository): UserAPI {
    return new UserAPI(router, userRepository);
}

public InitRoutes() {
    LogHelper.Info('Creating User API');


    this.Router.get('/api/Users', this.GetAll.bind(this));
    this.Router.get('/api/Users/:id', this.Get.bind(this));
    this.Router.post('/api/Users', this.Add.bind(this));
    this.Router.put('/api/Users', this.Update.bind(this));
    this.Router.delete('/api/Users/:id', this.Delete.bind(this));
}

Как использовать один и тот же экземпляр маршрутизатора для инициализации всех контроллеров с помощью Inversify?

...