编辑:
Here,您可以找到我尝试使用Inversify重写的旧测试的工作副本。
在server.ts中,我有这段代码:
public api() {
let router: express.Router = express.Router();
API.UserAPI.InitController(router, new UserRepository())
this.app.use(router);
}
想象一下我有多个控制器。 InitController是任何控制器的静态方法,这些控制器拥有自己的存储库以及用于配置api路由的Express路由器的相同实例。控制器示例:
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对所有控制器初始化使用相同的路由器实例?