npm 包 typeorm-typedi-extensions 使用教程

阅读时长 6 分钟读完

介绍

typeorm-typedi-extensions 是一个由 TypeORM 和 typedi 集成的 npm 包,它允许您在 TypeORM 实体类中使用 typedi 中的依赖注入。这使得 TypeORM 实体类可以更加灵活,易于维护。

安装

typeorm-typedi-extensions 可以通过 npm 安装:

使用

在你的 TypeORM 实体类中使用 typedi 依赖注入之前,请确保已在您的项目中配置好 typedi。

以下是一个简单的示例,说明如何在 TypeORM 实体类中使用 typedi 依赖注入:

首先,我们在实体类定义的构造函数中添加一个构造函数参数:

-- -------------------- ---- -------
------ - ------- ------- ---------------------- - ---- ----------
------ - ------ - ---- ---------

---------
------ ----- ---- -
  ------------------------------------------ ------- -------------------- -------------------- --

  -------------------------
  --- -------

  ---------
  ----- -------

  ---------
  ------ -------

  ----- ---------------- ------------- -
    ----- ----------------------------------------
    ------------------------------------------
  -
-

在这个例子中,我们使用了一个名为 userServiceProvider 的依赖注入标识符,并在实体类的构造函数中使用了一个名为 UserServiceProvider 的依赖注入服务。我们还添加了一个名为 saveAndNotify 的实例方法,它使用userServiceProvider来保存用户和通知用户,这个方法将是我们例子中使用依赖注入的主要方法。

然后,在您的 typedi 配置中添加对 UserServiceProvider 的注册(服务提供者):

如您所见,我们使用 Container.set 来将 UserServiceProvider 注册为'userServiceProvider'的标识符。现在,我们可以通过 UserServiceProvider 在保存用户和通知用户之前进行任何前置处理。

示例代码

下面是一个完整的 TypeScript 示例代码,展示了如何使用 typeorm-typedi-extensions 进行依赖注入:

-- -------------------- ---- -------
------ -------------------
------ - ----------------- ----------- ------------ - ---- ----------
------ - --------- - ---- ---------

------ - ---- - ---- ------------------

----- -------- -------- ------------- -
  -- -------- --------
  ----- ------------------- - --- ----------------------
  ------------------------------------ ---------------------

  -- --- ------ -- ------- -- --------
  ------------------------

  -- ------ - ------- ----------
  ----- ----------- ---------- - ----- ------------------
    ----- -----------
    ----- ------------
    ----- -----
    --------- -------
    --------- -----------
    --------- -----------
    --------- -------
    ------------ ----
  ---

  -- ---- - --- ---- ---- ------ --
  ----- -------------- - -------------------------------
  ----- ---- - --- -------
  --------- - ----- -----
  ---------- - -----------------------
  ----- --------------------------

  -- ------ --- ---- ---- ------ --
  ----- ---------------------

  -- ----- --- ----------
  ----- -------------------
-

--------------------- -- ----------------------

在本例中,我们首先注册了 UserServiceProvider 服务提供者,然后使用 Container.set 将其注册为'userServiceProvider'的标识符。接下来,我们使用 useContainer 方法将 typedi 作为 TypeORM 的 DI 解析器。

然后,我们创建了一个 TypeORM 连接,并保存了一个新的用户,使用 typedi DI 将其注入 User 实体类中。最后,我们使用 user.saveAndNotify 方法,在保存和通知用户之前执行一些前置处理。这个例子说明了如何在 TypeORM 中使用 typedi 依赖注入。

结论

使用 typeorm-typedi-extensions,我们可以将 typedi 的依赖注入机制集成到 TypeORM 实体类中。这使得我们可以更加方便地编写可维护和可测试的代码。希望这篇文章对你理解 TypeORM 和 typedi 的依赖注入机制有所帮助。

来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/5eedae68b5cbfe1ea0610e35

纠错
反馈