本文主要介绍了 npm 包 @moped/db-pg 的使用教程,包括安装、配置、操作和优化等方面,希望能够为前端开发者提供指导和帮助。
什么是 @moped/db-pg
@moped/db-pg 是一个基于 Node.js 的 PostgreSQL 操作库,提供了简洁易用的 API,支持大部分 PostgreSQL 数据库操作,同时具有很高的性能和稳定性,适用于一系列的企业级应用场景,例如:在线支付、物流追踪、数据统计等等。
主要特点如下:
- 采用 Promise 和 Async/Await 编写,支持异步操作
- 支持大多数 PostgreSQL 数据库操作,如查询、插入、更新、删除、事务等
- 内置连接池,支持连接超时和自动重连等特性
- 支持数据格式转换和安全过滤等操作
- 代码稳定可靠,广泛应用于多个生产项目
安装和配置
先确保已安装 Node.js 和 PostgreSQL 数据库,并创建一个数据库和一个数据表。
然后,安装 @moped/db-pg 包和 @types/pg 包(TypeScript 环境需要):
npm install @moped/db-pg @types/pg
配置数据库连接信息(主机、端口、用户名、密码、数据库名称等),通常放在 config.js 或者 .env 文件中,例如:
-- -------------------- ---- ------- -------------- - - --- - ----- ------------ ----- ----- ----- ----------- --------- ----------- --------- ------ - -
然后,在应用程序中引入库和配置信息:
const { DB } = require('@moped/db-pg') const config = require('./config') const db = new DB(config.db)
操作数据
查询数据
查询数据可以使用 query() 方法,支持基本查询、参数化查询、预处理查询等多种方式,例如:
-- -------------------- ---- ------- -- ---- ----- ---- - ----- ---------------- - ---- ------- ----------------- -- ----- ----- -- - - ----- ---- - ----- ---------------- - ---- ----- ----- ------- ----- ----------------- -- ----- ----- ------ - - ----- ---- - ----- ------------------ - ---- ----- ----- ------- ----- ---- - ----- -------------------- -----------------
其中,query() 和 prepare().query() 方法返回的都是查询结果数组,每个结果是一个对象,字段名和值分别对应数据表的列名和行数据。
插入数据
插入数据使用 insert() 方法,支持单行插入和批量插入两种方式,例如:
-- -------------------- ---- ------- -- ---- ----- -------- - - ----- ----- ---- -- - ----- ---- - ----- ------------------ --------- ----------------- -- ---- ----- --------- - -- ----- ----- ---- -- -- - ----- ----- ---- -- -- ----- ---- - ----- ------------------ ---------- -----------------
其中,insert() 方法返回插入的行数。
更新数据
更新数据使用 update() 方法,支持基本更新和条件更新两种方式,例如:
-- -------------------- ---- ------- -- ---- ----- -------- - - --- -- ----- ----- ---- -- - ----- ---- - ----- ------------------ --------- ----------------- -- ---- ----- ---- - - ---- -- - ----- ----- - - ----- ---- - ----- ---- - ----- ------------------ ----- ------ -----------------
其中,update() 方法返回更新的行数。
删除数据
删除数据使用 remove() 方法,支持基本删除和条件删除两种方式,例如:
// 基本删除 const rows = await db.remove('users', 1) console.log(rows) // 条件删除 const where = { name: '张三' } const rows = await db.remove('users', where) console.log(rows)
其中,remove() 方法返回删除的行数。
事务处理
事务处理使用 transaction() 方法,支持基本事务和条件事务两种方式,例如:
-- -------------------- ---- ------- -- ---- ----- -------------------- ---- -- - ----- ---------------- ---- ------- ----- ------------------ - ----- ----- ---- -- -- -- -- ---- ----- -------------------- ---- -- - ----- ---- - ----- ---------------- - ---- ----- ----- ------- ---- -- ------ - -------- -- - ----- ------------------ ----- - --
其中,transaction() 方法的参数是一个异步函数,可以包含多个数据库操作,同时支持回滚操作。
优化和扩展
连接池控制
@moped/db-pg 内置了连接池,可以通过设置连接池的最大连接数、闲置时间等参数来优化数据库访问性能和效率。例如:
const db = new DB(config.db, { pool: { max: 10, // 最大连接数 idleTimeoutMillis: 30000 // 闲置时间 } })
扩展查询器
@moped/db-pg 提供了基础的查询器支持,但是并不满足所有的业务场景,可以通过扩展查询器来实现更复杂的查询操作。例如:
-- -------------------- ---- ------- ----- ---- ------- -- - ----- ------------------------ - ------ ----- ------------------ - ---- ----- ----- ------------- ----------- - - ----- -- - --- --------------- ----- ---- - ----- ----------------------------- -----------------
扩展查询器需要继承 DB 类,并添加自定义的查询方法,从而实现自己的业务逻辑。
结语
通过本文的介绍,相信大家已经了解了 @moped/db-pg 的基本使用方法,并对该库的特点和优势有了更深入的理解。不仅如此,@moped/db-pg 的设计思想和 API 设计也可以为大家提供借鉴和启示,希望能够对大家的数据库操作和应用实践有所帮助。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/5f1d8687403f2923b035c58f