NodeJS DI容器的正确使用

von4xj4u  于 2023-05-28  发布在  Node.js
关注(0)|答案(1)|浏览(163)

这是我在使用ASP.NET Core之前第一次创建Node.js后端。我想使用某种DI容器并使用控制器。在ASP.NET Core中,会为每个请求创建一个控制器类的示例,我不明白Node.js中是否需要这样做,或者控制器最好以位于DI容器中的单例形式完成。

export class TestController extends ControllerBase {
  construct() {
    router.get("/test", function (req, res) {
      res.send("Test");
    });
  }
}
q43xntqr

q43xntqr1#

您可以使用inversify-express-utils包及其BaseHttpController。您的示例可以是:

import { injectable, inject } from "inversify";
import {
    controller, httpGet, BaseHttpController, HttpResponseMessage, StringContent
} from "inversify-express-utils";

@controller("/")
class ExampleController extends BaseHttpController {
    @httpGet("/test")
    public async get() {
        const response = new HttpResponseMessage(200);
        response.content = 'test';
        return response;
    }

InversifyJS是TypeScript和JavaScript应用程序的IoC

相关问题