npm 包 js-pg 使用教程

阅读时长 6 分钟读完

简介

js-pg 是一款基于 Node.js 的 PostgreSQL 客户端库,它提供了一组简单易用的方法来连接 PostgreSQL 数据库,执行 SQL 语句,以及处理结果集等常见操作。它是 npm 上面最受欢迎的 PostgreSQL 库之一,广泛应用于 Node.js 后端开发中。

除了基本功能之外,js-pg 还支持许多高级特性,如连接池、事务管理、JSON 数据类型的支持等。使用 js-pg,可以方便地实现与 PostgreSQL 数据库的交互,提升后端业务处理的效率和可靠性。

安装

需要先安装 Node.js 以及 PostgreSQL 数据库,然后使用 npm 包管理器来安装 js-pg:

连接数据库

连接到 PostgreSQL 数据库需要提供以下信息:

  • 主机地址
  • 端口号
  • 数据库名
  • 用户名
  • 密码

我们可以通过构造一个配置对象来传递这些信息,示例代码如下:

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

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

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

执行 SQL 语句

连接成功之后,我们就可以执行 SQL 语句了。js-pg 使用 query() 方法来执行 SQL 语句,该方法返回一个 Promise 对象,在 Promise 回调函数中处理结果集。

以下示例代码展示了如何查询 PostgreSQL 中的所有表名:

在 Promise 回调函数中处理结果集的示例:

参数化查询

如果 SQL 语句中包含用户输入的参数,我们需要使用参数化查询来防止 SQL 注入攻击。js-pg 使用 $1$2$3 等占位符来指定 SQL 中的参数,示例代码如下:

事务管理

在处理一组相关的 SQL 语句时,我们可以使用事务管理来确保这组 SQL 语句完全成功或完全失败,以保持数据的一致性。js-pg 提供了 client.query() 方法的一个变体 client.query(),用于启动一个事务,示例代码如下:

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

在上面代码中,我们首先使用 pool.connect() 方法获取一个连接客户端对象,然后在一个 try-catch-finally 块中执行一组 SQL 语句,如果中间出现了任何错误,则通过 ROLLBACK 回滚所有修改,否则通过 COMMIT 提交所有修改。

连接池

在实际应用中,频繁地打开关闭数据库连接会导致性能下降,也容易引发诸如 "too many clients already" 的异常。为了解决这个问题,我们可以使用连接池来管理数据库连接。js-pg 提供了 Pool 类来实现连接池功能:

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

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

在创建连接池对象时,我们可以指定连接池的最大连接数、空闲超时时间、连接超时时间等参数,以满足不同应用场景的需求。连接池对象创建之后,我们可以通过 pool.connect() 方法来获取连接对象,使用方法与前面代码类似。

总结

本文介绍了如何使用 npm 包 js-pg 来操作 PostgreSQL 数据库。我们学习了如何连接数据库、执行 SQL 语句、参数化查询、事务管理以及连接池等高级功能。js-pg 是一款非常优秀的 PostgreSQL 客户端库,能够极大地提升 Node.js 后端开发的效率和稳定性。

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

纠错
反馈