npm 包 pg-promise 使用教程

阅读时长 6 分钟读完

在现代 Web 开发中,Node.js 成为了前端开发的重要工具。而作为一个使用 Node.js 开发后端的前端开发者,我们经常需要与数据库打交道。这时候,一个好用的 ORM(Object-Relational Mapping)框架就显得尤为重要,而 pg-promise 就是其中的佼佼者。

什么是 pg-promise?

pg-promise 是一个基于 Promise 的 PostgreSQL ORM 框架。它提供了一种简单、直观的方法来连接和操作 PostgreSQL 数据库。

pg-promise 在底层使用 node-postgres 驱动,因此它继承了 node-postgres 驱动的所有功能,并在这个基础上提供了更高级别的抽象。

如何安装 pg-promise?

在使用 pg-promise 之前,我们需要在项目中安装它。可以使用 npm 来安装:

如何使用 pg-promise?

下面我们来看一个使用 pg-promise 连接数据库、查询数据的示例代码:

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

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

这里的 usernamepasswordhostportdatabase 都需要替换成实际项目的数据库连接参数。

解析上述代码:

  1. 引入 pg-promise 模块,然后使用 pgp() 方法创建一个数据库连接对象。
  2. 使用数据库连接对象调用 db.any() 方法,并传入需要执行的 SQL 语句。.any() 方法可以执行任意的语句类型,它会将查询结果数据放入一个数组中返回。
  3. then() 方法表示查询成功时执行的回调函数,.catch() 方法表示查询失败时执行的回调函数。

下面我们来看一下具体的 ORM 操作。

插入数据

使用 pg-promise 插入数据非常简单,可以通过 db.one() 方法实现:

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

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

解析代码:

  1. 向 tablename 表中插入一条数据。
  2. RETURNING 子句返回插入数据的 id 字段。

查找数据

pg-promise 支持多种方式查找数据:

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

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

解析代码:

  1. 使用 db.one() 方法查找 id 为 1 的数据。
  2. 使用 db.any() 方法查找年龄大于 18 的数据。

更新数据

pg-promise 更新数据可以使用 db.none()db.one() 方法实现。

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

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

解析代码:

  1. 使用 db.none() 方法更新 tablename 表中 Alice 的年龄。
  2. 使用 db.one() 方法更新 tablename 表中 Alice 的年龄,并返回更新后的所有数据。

删除数据

pg-promise 删除数据可以使用 db.none()db.one() 方法实现。

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

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

解析代码:

  1. 使用 db.none() 方法删除 id 为 1 的数据。
  2. 使用 db.one() 方法删除 id 为 2 的数据,并返回删除的所有数据。

总结

本文介绍了 pg-promise 的基本使用方法,包括连接数据库、插入数据、查找数据、更新数据和删除数据。pg-promise 提供了非常简单、直观的 ORM 操作方式,可以大大提高开发效率。希望本文对大家有所帮助。

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