Deno 中如何使用 TypeORM 进行数据库操作

介绍

Deno 是一个基于 JavaScript 和 TypeScript 的新一代运行时环境,它提供了更好的模块化支持和更强的安全性。而 TypeORM 则是一个流行的 TypeScript ORM(对象关系映射)框架,它可以帮助我们更加方便地操作数据库。

在本文中,我们将会讲解如何在 Deno 中使用 TypeORM 进行数据库操作。本文的主要内容包括:

  • 安装 TypeORM
  • 配置数据库连接
  • 创建实体(Entity)
  • 执行增删改查操作
  • 使用 Repository
  • 使用 QueryBuilder

安装 TypeORM

TypeORM 可以通过 npm 安装:

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

配置数据库连接

在使用 TypeORM 进行数据库操作前,我们需要先配置数据库连接。在 Deno 环境中,我们可以使用 deno-postgres 来连接 PostgreSQL 数据库。在安装 deno-postgres 后,我们可以使用如下代码来建立数据库连接:

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

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

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

这里,我们需要将 userhostnamedatabasepasswordport 替换成自己的数据库信息。

创建实体(Entity)

在 TypeORM 中,实体是指对应数据库表结构的 TypeScript 类。我们可以通过定义实体来创建、删除、修改、查询数据库记录。

例如,我们创建一个 User 实体:

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

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

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

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

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

这里,我们使用了 @Entity() 来标记这是一个实体类,使用 @PrimaryGeneratedColumn() 来指定 id 为自增 long 类型。其他注解和普通的 TypeScript 类一样,同时还需要继承 BaseEntity 类,才能使用 TypeORM 提供的基础功能。

执行增删改查操作

在定义好实体后,我们可以使用 Repository 来执行增删改查操作。

创建 Repository:

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

执行增加用户操作:

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

执行查询用户操作:

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

执行删除用户操作:

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

执行更新用户操作:

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

使用 Repository

除了上述的增删改查操作,Repository 还提供了许多常用的方法,让我们可以更加方便地进行数据库操作。

例如,查询指定属性和拍平查询:

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

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

我们还可以使用各种查询条件来查询特定的数据:

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

以上代码使用了 QueryBuilder 来构建查询,它是一种链式调用的方式,可以方便地构建复杂查询语句。

使用 QueryBuilder

QueryBuilder 可以让我们更加灵活地构建查询,例如我们可以使用 LIKE 来进行模糊查询:

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

QueryBuilder 还支持 join、select、group by 等功能,可以让我们更加方便地进行数据库操作。

总结

本文介绍了如何在 Deno 中使用 TypeORM 进行数据库操作,内容包括安装 TypeORM、配置数据库连接、创建实体(Entity)、执行增删改查操作、使用 Repository 和使用 QueryBuilder。希望这篇文章能帮助大家更好地理解 TypeORM 的使用。

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


猜你喜欢

  • Java 性能优化:从 JVM 角度出发

    Java 是一种广泛使用的编程语言,在 Web 开发、移动应用等领域都有广泛的应用。随着应用程序规模的不断扩大和复杂度的增加,Java 应用程序的性能优化变得越来越重要。

    5 个月前
  • ES10:Array.flat()、Array.flatMap() 及其他一个实用的新数组函数

    ES10:Array.flat()、Array.flatMap() 及其他一个实用的新数组函数 ES10 提供了一些新的数组函数,这些函数可以使我们更方便地处理数组。

    5 个月前
  • 如何创建简单的 Material Design 对话框

    Material Design 是 Google 推出的一种全新的设计语言,它的特色是平面化设计和强调视觉层级。Material Design 为用户提供了更具有直观性和易用性的用户体验。

    5 个月前
  • Webpack 中 css-loader 和 style-loader 的使用

    Webpack 是一个模块打包工具,可以将多个模块打包成一个文件。它的特点是可以处理各种不同的资源,并且有强大的插件系统。其中,css-loader 和 style-loader 是处理 CSS 样式...

    5 个月前
  • Express 和 Fastify 框架的比较及使用场景

    在前端开发中,我们经常需要使用到后端框架。Express 和 Fastify 是目前比较流行的两个 Node.js 服务框架。它们都有自己的优缺点和适用场景。在本篇文章中,我们将会探讨这两个框架的差异...

    5 个月前
  • Docker 部署 CI/CD 流水线实践

    在前端开发中,CI/CD 是一个非常重要的流程。它可以提高开发流程的效率和质量。Docker 是一个功能强大的容器化技术,它可以帮助我们更加简单、高效地部署 CI/CD 流水线。

    5 个月前
  • Mongoose 中的时间戳:在文档中添加 createdAt 和 updatedAt 字段

    在使用 MongoDB 进行数据存储时,我们经常面临这样的问题:如何记录文档的创建时间和更新时间?这在很多业务场景下是非常必要的,比如后台管理系统需要记录用户的最后登录时间,或者需要计算文档的过期时间...

    5 个月前
  • Redis 中如何自动删除过期的 key

    在使用 Redis 缓存数据时,有时我们需要设置一个 key 在一定时间后自动过期。当数据过期时,Redis 应该自动删除这个 key,以释放内存空间。那么,Redis 中如何实现自动删除过期的 ke...

    5 个月前
  • Socket.io 如何实现广播消息?

    Socket.io 是一种实现实时、双向、事件驱动通信的库,它可以在前端和后端之间建立 WebSocket 连接,实现即时通讯、直播等需要实时通信的场景。在这些场景下,经常需要向多个客户端广播消息,本...

    5 个月前
  • 从 Redux 到 MobX 浅析 React 的状态管理

    状态管理在 React 开发中扮演着至关重要的角色,学习并掌握一种好的状态管理方案能够提高开发效率,增强代码质量。Redux 作为 React 官方推荐的状态管理方案受到了广泛的使用和关注,而 Mob...

    5 个月前
  • SASS 中使用!global 的作用及其应用场景

    SASS 中使用!global 的作用及其应用场景 在 SASS 中,!global 是一个特殊的关键词,它可以帮助我们在全局范围内定义和修改变量值,同时可以避免变量作用域范围的限制,从而提高代码的灵...

    5 个月前
  • 在 TypeScript 中使用 React Hooks

    React Hooks 是 React 16.8 引入的一项新特性,它可以让我们在不使用类的情况下使用 React 的 state 和其他特性。在 TypeScript 中使用 React Hooks...

    5 个月前
  • 如何使用 CSS Flexbox 实现水平网格布局

    如何使用 CSS Flexbox 实现水平网格布局 随着移动端设备的普及,网页布局需求越来越多元化,特别是对于水平网格布局的需求。CSS Flexbox(弹性盒子)是一种比传统布局更加快速、简便、有效...

    5 个月前
  • ESLint 中 enforces import/export syntax of modules 单行设置规则

    在前端开发中,模块化编程已经成为一种广泛应用的开发方式。ES6 提供了一套更为完整的模块化开发方案,这使得前端开发变得更加基于模块化编程。然而,使用 ES6 的模块化方案时,我们需要额外注意语法规则的...

    5 个月前
  • 无障碍性的配色方案及其理论

    在设计网页或移动应用程序时,很容易忽略许多人在使用您的应用程序时会经历障碍。例如,用户可能会患有色盲症或其他视力障碍。这意味着我们必须设计网站和应用程序,以确保我们的数字产品是无障碍的并且可访问的。

    5 个月前
  • ECMAScript 2020 新特性:Promise.all() 与 Promise.allSettled()

    在 JavaScript 中,Promise 是处理异步操作的重要方式。在 ECMAScript 2020 中,Promise.all() 和 Promise.allSettled() 是两个值得称赞...

    5 个月前
  • 如何利用 Headless CMS 实现数据 Mock?

    前端开发中,数据 Mock 是一个非常重要的环节,用于模拟后端数据接口,方便前端开发调试和测试。传统的数据 Mock 方式,通常需要手动编写数据,或者使用第三方数据 Mock 工具,但这些方式都存在一...

    5 个月前
  • 如何正确地链式使用 Promise

    Promise 是一种用于处理异步操作的 JavaScript 核心模块,它可以帮助我们确保代码正确地处理异步操作反馈。在前端开发中,使用 Promise 是非常常见的,但是链式使用 Promise ...

    5 个月前
  • ECMAScript 10 新增方法总结

    ECMAScript 10 是 JavaScript 的最新版本,它带来了许多新的功能和新的语法特性。在本文中,我们将介绍 ECMAScript 10 中新增的方法,介绍每个方法的用途和示例代码。

    5 个月前
  • 如何使用 Enzyme 测试异步 Render 的 Loading 组件

    在 Web 开发中,前端开发扮演着至关重要的角色。而测试是保证前端代码质量的一种重要手段。尤其是针对具有异步操作的组件,如何进行有效的测试尤为重要。本文将介绍如何使用 Enzyme 测试异步 Rend...

    5 个月前

相关推荐

    暂无文章