РЕДАКТИРОВАТЬ:
Здесь вы можете найти рабочую копию моего старого теста, который я пытаюсь переписать, используя 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?