Inversify-具有注入参数和非注入参数的构造函数

时间:2018-10-17 21:19:22

标签: node.js typescript express dependency-injection inversifyjs

编辑:

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对所有控制器初始化使用相同的路由器实例?

0 个答案:

没有答案