如何使用 Node.js 连接到 PostgreSQL 数据库

数据库
大多数编程语言都支持将应用程序连接到 PostgreSQL 等数据库。本文了解如何使用 node-postgres 模块将 Node 应用程序连接到 PostgreSQL。

Node.js 在连接到 PostgreSQL 时提供了很大的灵活性,但它也使整个过程变得简单。

大多数现实世界的应用程序以一种或另一种方式与数据库交互。数据库使持久化、分析数据和与数据交互变得容易。

大多数编程语言都支持将应用程序连接到 PostgreSQL 等数据库。本文了解如何使用 node-postgres 模块将 Node 应用程序连接到 PostgreSQL。

如何开始

要开始连接到本地数据库,您需要安装 PostgreSQL 服务器。

PostgresSQL因其灵活性和强大功能而成为最常见的关系数据库系统之一。如果您的项目很复杂,或者您正在寻找包含开源精神的解决方案,您可能会考虑使用它作为 MySQL 的替代品。

创建 Node 应用程序

第一步是创建一个 Node 应用程序,您将使用它来测试连接代码。在您的首选文件夹中,创建一个新文件夹。

mkdir postgres-node

导航到您创建的文件夹并初始化 npm。

cd postgres-node
npm init -y

此命令应生成一个package.json文件。

接下来,创建一个新文件并将其命名为index.js。您将在此文件中将 Node 连接到 PostgreSQL。

使用 node-postgres 模块

node-postgres模块是一个 npm 包,它允许您连接到 PostgreSQL 数据库并与之交互。使用 node-postgres 模块可以使用两个选项将 Node 与 PostgreSQL 连接:单个客户端或连接池。那么你应该使用什么?

如果一次只需要一个静态连接,请使用单个客户端。但是,如果您需要使用并发和多个请求,请使用连接池。

安装 node-postgres

在终端中运行以下命令以安装 node-postgres。

npm install pg

如果您使用 node >= 14.x,则需要稍后安装 pg@8.2.xo。您可以通过像这样将其添加到安装命令后缀来指定版本号。

npm install pg=8.7.3

连接到 PostgreSQL

node-postgres 模块需要以下值才能连接到 PostgreSQL 数据库:

  • PGUSER – 要连接的 PostgreSQL 用户名。
  • PGHOST – 要连接的服务器主机的名称。
  • PGPASSWORD – PostgreSQL 服务器的密码。
  • PGD​​ATABASE – 您要连接的数据库的名称。
  • PGPORT – 在服务器主机上连接的端口号。

创建一个 .env 文件并添加这些变量,替换数据库中的相应值:

PGUSER=<PGUSER>
PGHOST=<PGHOST>
PGPASSWORD=<PGPASSWORD>
PGDATABASE=<PGDATABASE>
PGPORT=<PGPORT>

安装 dotenv 包以访问 .env 文件:

npm install dotenv

在index.js中,导入并配置 dotenv:

const dotenv = require("dotenv")
dotenv.config()

使用单个客户端连接到 PostgreSQL 数据库

下面的代码展示了如何使用单个客户端将 Node 连接到 PostgreSQL 服务器:

const { Client } = require("pg")
const dotenv = require("dotenv")
dotenv.config()

const connectDb = async () => {
try {
const client = new Client({
user: process.env.PGUSER,
host: process.env.PGHOST,
database: process.env.PGDATABASE,
password: process.env.PGPASSWORD,
port: process.env.PGPORT
})

await client.connect()
const res = await client.query('SELECT * FROM some_table')
console.log(res)
await client.end()
} catch (error) {
console.log(error)
}
}

connectDb()

使用连接池

如前所述,连接池允许您向服务器发出多个连接请求:

const { Pool } = require("pg");
const dotenv = require("dotenv");
dotenv.config();

const connectDb = async () => {
try {
const pool = new Pool({
user: process.env.PGUSER,
host: process.env.PGHOST,
database: process.env.PGDATABASE,
password: process.env.PGPASSWORD,
port: process.env.PGPORT,
});

await pool.connect()
const res = await pool.query('SELECT * FROM clients')
console.log(res)
await pool.end()
} catch (error) {
console.log(error)
}
}

connectDb()

上面的示例让您可以通过 .env 文件控制数据库配置。但是,您也可以使用标准环境变量提供这些配置值。这种方法使您可以在启动时轻松更改配置。

考虑以下连接代码:

const connectDb = async () => {
try {
const pool = new Pool();
const res = await pool.query('SELECT * FROM clients')
console.log(res)
await pool.end()
} catch (error) {
console.log(error)
}
}

在这个程序中,初始化 Pool 时,您没有将连接对象作为参数传递。相反,您必须在调用程序时指定连接详细信息,如下所示:

PGUSER=<PGUSER> \
PGHOST=<PGHOST> \
PGPASSWORD=<PGPASSWORD> \
PGDATABASE=<PGDATABASE> \
PGPORT=<PGPORT> \
node index.js

像这样将 Node 连接到 PostgreSQL 可以让您编写更可重用的程序。

使用 PostgreSQL 做更多事情

要创建与数据库交互的应用程序,您必须先将其连接到数据库。在本文中,您学习了如何使用 node-Postgres 模块将 Node 连接到 PostgreSQL 数据库。

除了 PostgreSQL,您还可以在应用程序中使用其他数据库管理系统,例如 MySQL。您选择的数据库工具应该与您的数据需求最兼容。

责任编辑:赵宁宁 来源: Linux迷
相关推荐

2011-09-09 14:23:13

Node.js

2022-08-22 07:26:32

Node.js微服务架构

2021-07-30 11:20:53

JavaScriptNode.jsWeb Develop

2020-08-05 08:31:51

SSL TLSNode.js

2022-09-12 15:58:50

node.js微服务Web

2021-06-15 15:03:21

MongoDBNode.jsCRUD

2022-08-28 16:30:34

Node.jsDocker指令

2019-09-18 08:00:00

MySQL数据库服务器

2023-01-10 14:11:26

2015-03-10 10:59:18

Node.js开发指南基础介绍

2013-11-01 09:34:56

Node.js技术

2011-04-26 13:17:36

AS3MySQL

2010-05-26 14:24:24

MySQL数据库

2021-10-25 09:00:37

Node.jsJS前端

2021-08-02 10:53:28

PythonMySQL数据库

2021-07-03 17:43:03

Node.jsNode变量

2020-09-04 15:06:04

Docker容器化Node.js

2021-03-03 06:39:05

Nodejs前端开发

2021-07-16 04:56:03

NodejsAddon

2012-09-29 11:13:15

Node.JS前端开发Node.js打包
点赞
收藏

51CTO技术栈公众号