npm 包 @clarkieryan/typeorm-fixtures 使用教程

阅读时长 4 分钟读完

前言

在前端开发过程中,我们常常需要使用 mock 数据进行开发和测试。而使用 fixtures 工具可以方便地快速生成 mock 数据。在 TypeORM 中,我们可以使用 @clarkieryan/typeorm-fixtures 这个 npm 包来生成 fixtures 数据。本文将介绍如何使用该 npm 包进行 mock 数据生成。

安装

在项目中安装 @clarkieryan/typeorm-fixtures:

配置

创建 fixtures 文件

创建一个 fixtures 文件,比如 user.fixture.json。文件内容应该包含用于 mock 的数据,并遵循 JSON 格式。

配置 TypeORM

TypeORM 中,使用 import 语句注册实体和连接。在使用 fixtures 之前,应该先创建一个 typeorm.config.js 文件(如果已经存在,可以跳过此步骤):

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

这个配置文件中 entities 是一个 glob,它将所有 Entity 文件加载到 TypeORM 中。synchronize 选项会在创建表格之前检查数据库模式是否正确。

使用 fixtures

在使用 fixtures 之前,我们需要先保证 TypeORM 的实体模型已经在项目中正确定义。假设我们有一个用户模型:

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

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

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

接下来,在测试文件中使用 fixtures:

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

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

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

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

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

这里我们导入了 loadFixtures 方法,并传入了 TypeORM 的连接,要填写的实体以及 fixtures 文件的路径。

最后我们可以使用 getRepository(User).find() 方法查询数据库中的用户数量,如果正确加载 fixtures 数据,那么数量应该为 1。

总结

@clarkieryan/typeorm-fixtures 提供了简单易用的 fixtures 工具,它可以方便地生成 mock 数据。通过本文,我们可以了解如何使用该 npm 包生成 fixtures 数据和如何在 TypeORM 中使用它。希望本文能帮助读者更好地了解 fixtures 并在实践中实现更好的效果。

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

纠错
反馈