npm 包 typeorm 使用教程

介绍

TypeORM 是一个非常流行的 TypeScript 编写的 Object Relational Mapping (ORM) 框架,用来在 NodeJS 中操作 SQL 和 NoSQL 数据库,包括 MySQL、MariaDB、PostgreSQL、SQLite、MS SQL Server、Oracle、WebSQL 等。

TypeORM 具有良好的可扩展性和可定制性,能够轻松地适应各种不同的数据模型和数据访问需求。同时,TypeORM 还提供了丰富的文档和示例,便于开发者学习和使用。

在本文中,我们将详细介绍 TypeORM 的使用方法,并结合示例代码,帮助大家更好地理解和掌握这个优秀的 ORM 框架。

安装

首先,我们需要在项目中安装 TypeORM。使用 npm 命令即可完成安装:

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

安装成功后,我们需要在代码中引入 TypeORM 和相关的依赖:

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

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

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

数据库连接配置

在上面的示例代码中,我们创建了一个 MySQL 数据库连接。TypeORM 支持多种不同的数据库类型,可以根据自己的需要进行选择。例如,如果要连接 PostgreSQL 数据库,只需要将 type 参数设置为 "postgres",其他参数保持不变。

然后,我们指定了连接数据库的相关配置信息,包括数据库主机、端口、用户名、密码、数据库名称等。这些信息应该根据自己实际的情况进行修改。

在数据库连接配置中,我们还指定了一个 entities 属性,用来定义数据库实体类。实体类用来映射数据库表结构,是 TypeORM 的核心概念之一。在后面的示例代码中,我们将详细介绍如何定义和使用实体类。

最后,我们还设置了一些其他的配置参数,包括自动同步数据库结构(synchronize)和关闭日志输出(logging)等。这些参数也可以根据需要进行修改。

定义实体类

接下来,我们需要定义一个 User 实体类。示例代码如下:

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

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

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

在上面的代码中,我们使用 @Entity() 装饰器来表示这是一个数据库实体类。@PrimaryGeneratedColumn() 装饰器表示这是一个自动生成的主键列。@Column() 装饰器表示这是一个普通列。

在实体类中,我们可以定义多个列,以及各种关联关系。TypeORM 支持多种关联关系,包括一对一、一对多、多对多等。这些关联关系需要根据具体的业务需求进行定义和使用。

数据访问

在我们定义了数据库实体类后,就可以通过实体类来访问数据库了。TypeORM 提供了多种数据访问方式,包括:

  • 使用查询语言来手动编写 SQL 语句,然后通过 query 方法执行。
  • 使用 QueryBuilder 来编写类型安全的查询语句。
  • 使用 Repository 对象来进行增删改查等操作。

在接下来的示例代码中,我们将演示如何使用 Repository 对象进行增删改查等操作。

首先,我们需要获取一个实体类的 Repository 对象:

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

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

然后,就可以通过该 Repository 对象来进行增删改查等操作了。

新增数据

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

在上面的代码中,我们创建了一个新的 User 对象,并设置了其 name 属性。然后,使用 save 方法将该对象保存到数据库中。TypeORM 会自动将其转换为对应的 SQL 语句并执行。

查询数据

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

在上面的代码中,我们使用 find 方法来查询数据库中所有的 User 对象,并将其打印到控制台上。

修改数据

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

在上面的代码中,我们使用 findOne 方法来查询数据库中 id 为 1 的 User 对象,并将其 name 属性修改为 "new name"。然后,使用 save 方法将该对象保存回数据库中。

删除数据

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

在上面的代码中,我们使用 findOne 方法来查询数据库中 id 为 1 的 User 对象,并使用 remove 方法将其从数据库中删除。

总结

通过本文的介绍,大家应该已经了解了 TypeORM 的基本使用方法,以及如何定义实体类和进行数据访问等操作。

TypeORM 是一个非常强大和灵活的 ORM 框架,可以帮助开发者快速地进行数据模型和数据访问的开发。同时,TypeORM 也提供了丰富的文档和示例,方便大家学习和使用。如果您还没有尝试过 TypeORM,建议您在自己的项目中尝试使用一下。

来源:JavaScript中文网 ,转载请联系管理员! 本文地址:https://www.javascriptcn.com/post/80387


猜你喜欢

  • npm 包 nfw-core 使用教程

    什么是 nfw-core nfw-core 是一个基于 Node.js 平台的前端开发框架。它提供了一套完整的前端开发解决方案,包括组件开发、模块化管理、打包压缩等功能。

    5 年前
  • npm 包 fullarray-search 使用教程

    简介 fullarray-search 是一个用于在 JavaScript 中全局搜索数组元素的 npm 包。它可以帮助开发者更方便地处理数组。 在日常开发中,开发者经常需要对数组中的元素进行搜索和操...

    5 年前
  • npm 包 ts-node-dev 使用教程

    在前端开发中,我们经常需要使用 TypeScript 编写代码。而 ts-node-dev 是一个优秀的 npm 工具,可以方便开发人员在开发过程中实时编译 TypeScript 代码,并自动重启 N...

    5 年前
  • npm 包 aral 使用教程

    简介 aral 是一款基于 WebGL 和 Three.js 的 Web3D 场景渲染器,支持高效的对象管理和场景管理,提供了许多常用的渲染效果并且易于扩展。 安装 在进行 aral 的安装之前,您需...

    5 年前
  • npm 包 hostile 使用教程

    在前端开发的过程中,我们可能会遇到需要在本地进行域名解析的情况。这时候,npm 包 hostile 就可以派上用场了。 什么是 hostile? hostile 是一个可以为本地的 hosts 文件添...

    5 年前
  • npm 包 readline-promise 使用教程

    什么是 readline-promise? readline-promise 是一个 Node.js 的 readline 模块的封装,让我们可以用 promise 风格来处理命令行输入。

    5 年前
  • npm 包 slib 使用教程

    什么是 slib? slib 是一个适用于前端开发的 npm 包,它提供了一些常用的 JavaScript 工具函数,可以方便地帮助开发者进行项目开发。 slib 的安装 首先需要在终端中使用 npm...

    5 年前
  • npm 包 phantomjscloud-lite 使用教程

    在前端开发中,我们需要进行各种处理,例如页面截图、爬虫、自动化测试等等。而这些任务可以通过利用 PhantomJS 来实现。PhantomJS 是一个基于 WebKit、使用 JavaScript 编...

    5 年前
  • npm 包 phantomjscloud-examples 使用教程

    前言 随着前端技术的不断发展,现在越来越多的前端工具和库出现,能够大幅提高前端工作效率。其中,npm 包是一个非常重要的前端技术工具,它可以让我们快速、便捷地使用众多的开源工具和库。

    5 年前
  • npm 包 phantomjscloud 使用教程

    简介 PhantomJS 是一个基于 WebKit 的服务器端 JavaScript API,它支持无头浏览器的自动化,用于网页截图、页面渲染、网络监测等任务。PhantomJS 不支持 JavaSc...

    5 年前
  • npm 包 xlib 使用教程

    在前端开发中,选择适合的工具和库是非常重要的。其中,npm 包是非常常用的一种工具。在众多的 npm 包中,有一款极为实用的库叫做 xlib。 本文将会详细介绍 npm 包 xlib 的使用教程,包括...

    5 年前
  • npm 包 dsv 使用教程

    在前端开发中,处理 CSV、TSV、PSV 等格式的数据是非常常见的需求。而 dsv 这个 npm 包就是帮助我们轻松处理这些格式的一个工具。 本文将介绍如何使用 dsv 这个 npm 包,以及如何在...

    5 年前
  • npm 包 tablespoon 使用教程

    前言 在前端开发中,随着项目逐渐复杂,我们经常需要用到一些小工具来辅助我们的开发。而 npm 是前端开发必不可少的工具之一,它可以让我们快速、方便地安装和管理第三方库。

    5 年前
  • npm 包 tktk 使用教程

    如果您经常在编写前端项目时使用动画效果,那么 tktk 可能是您需要的 npm 包。tktk 提供了一套简单易用的 API,用于帮助您创建各种不同的动画效果,并且 tktk 支持不同的浏览器平台,包括...

    5 年前
  • npm 包 indian-ocean 使用教程

    简介 indian-ocean 是一个针对前端开发的 npm 包,它是一个基于 JavaScript 编写的工具库,用于简化前端开发中的常见操作。indian-ocean 提供了各种有用的工具函数,用...

    5 年前
  • npm 包 party-time 使用教程

    随着前端开发的发展, JavaScript 的作用越来越重要。越来越多的开发者选择使用 npm 包来提高生产效率。其中,party-time 是一个有趣的 npm 包,它提供了一种简单的方法来实现在文...

    5 年前
  • npm包jeezy使用教程

    在前端开发中,我们常常需要使用一些常用的工具库和插件来简化开发过程。而 npm 包 jeezy 是一个非常实用的前端工具库,能够帮助我们快速处理一些常见的问题。本篇文章将介绍 jeezy 的使用方法,...

    5 年前
  • npm 包 tokenize-file 使用教程

    前言 在前端开发的过程中,涉及到字符串处理的情况非常常见,而字符串解析和分词则是其中的一个重要环节。在这篇文章里,我们将介绍一个非常实用的 npm 包:tokenize-file。

    5 年前
  • npm 包 textract 使用教程

    在前端开发中,我们常常需要从各种文件中获取文本信息。而使用 textract 这个 npm 包,则能够帮助我们快速方便地从不同类型的文件中提取文本信息。在本文中,我们将详细介绍 npm 包 textr...

    5 年前
  • teserver:一个方便的前端工具

    使用 teserver 可以快速地搭建一个本地的开发服务器,方便前端开发。它使用 Node.js 编写,支持多种开发场景,比如本地开发,测试等。本文将详细介绍 teserver 的使用方法。

    5 年前

相关推荐

    暂无文章