网易首页 > 网易号 > 正文 申请入驻

web前端培训Node.js 如何连接到 PostgreSQL 数据库

0
分享至

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

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

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

如何开始

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

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

更多Java –大数据 – 前端 – UI/UE - Android - 人工智能资料下载,可访问百度:尚硅谷官网(www.atguigu.com)

创建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

更多Java –大数据 – 前端 – UI/UE - Android - 人工智能资料下载,可访问百度:尚硅谷官网(www.atguigu.com)

连接到 PostgreSQL

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

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

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

PGUSER=

PGHOST=

PGPASSWORD=

PGDATABASE=

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)

更多Java –大数据 – 前端 – UI/UE - Android - 人工智能资料下载,可访问百度:尚硅谷官网(www.atguigu.com)

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

PGUSER=

PGHOST=

PGPASSWORD=

PGDATABASE=

PGPORT=

\node index.js

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

使用 PostgreSQL 做更多事情

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

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

文章来源于Linux公社

特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。

Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.

相关推荐
热点推荐
国务院报告:AI将引发永久失业,警示三大脱钩风险。

国务院报告:AI将引发永久失业,警示三大脱钩风险。

特约前排观众
2026-01-26 00:05:15
山西婚闹致死案:新郎被4个伴郎暴打致死,婚礼结束直接办丧事

山西婚闹致死案:新郎被4个伴郎暴打致死,婚礼结束直接办丧事

明智家庭教育
2025-12-02 11:20:34
尹建业,被免职、撤销资格

尹建业,被免职、撤销资格

黄河新闻网吕梁频道
2026-01-26 10:19:57
鹈鹕104-95力克马刺,锡安-威廉森24+10,文班亚马16+16

鹈鹕104-95力克马刺,锡安-威廉森24+10,文班亚马16+16

懂球帝
2026-01-26 10:33:10
不战而胜!对手门希克因伤退赛,德约生涯第65次跻身大满贯八强

不战而胜!对手门希克因伤退赛,德约生涯第65次跻身大满贯八强

全景体育V
2026-01-25 17:37:59
0-4输掉冠军却赢下了未来!欧洲球探考察U23国脚,旅欧之路会开启

0-4输掉冠军却赢下了未来!欧洲球探考察U23国脚,旅欧之路会开启

里芃芃体育
2026-01-26 10:33:14
首映仅150万,《舒克贝塔》票房扑街,郑渊洁父子亏到怀疑人生

首映仅150万,《舒克贝塔》票房扑街,郑渊洁父子亏到怀疑人生

电影票房预告片
2026-01-25 00:00:56
毫无投射反而大肆索要球权?客战活塞杜兰特与他产生严重意见不合

毫无投射反而大肆索要球权?客战活塞杜兰特与他产生严重意见不合

小彭美识
2026-01-26 06:29:09
内斗?记者揭国足2年前丑闻,国脚做掉主教练,邵佳一要当心了

内斗?记者揭国足2年前丑闻,国脚做掉主教练,邵佳一要当心了

国足风云
2026-01-26 10:12:05
加拿大医生带女儿上海求医!自费16万元“保脾”!中国技术获认可

加拿大医生带女儿上海求医!自费16万元“保脾”!中国技术获认可

眼界纵横
2026-01-26 10:33:36
出身浙江豪门,前夫是上海顶级富豪,现仍在前夫集团担任高层领导

出身浙江豪门,前夫是上海顶级富豪,现仍在前夫集团担任高层领导

素衣读史
2026-01-19 15:12:16
过了55岁,手握这个数的存款,基本上可以“优雅”生活了

过了55岁,手握这个数的存款,基本上可以“优雅”生活了

特特农村生活
2026-01-25 09:42:03
上海交大调查722名糖尿病人士,发现:患糖尿病的人,有5大共性

上海交大调查722名糖尿病人士,发现:患糖尿病的人,有5大共性

观星赏月
2026-01-25 10:16:37
包养10位情妇,睡觉翻牌生下11个私生子,75岁还在拼命生娃!

包养10位情妇,睡觉翻牌生下11个私生子,75岁还在拼命生娃!

春秋论娱
2025-09-09 07:26:27
连续2年输同一人!梅总吞蛋出局,20岁新星首进大满贯八强

连续2年输同一人!梅总吞蛋出局,20岁新星首进大满贯八强

全景体育V
2026-01-25 17:19:06
中央定调,延迟退休继续实施!公务员和事业单位员工不能向后延?

中央定调,延迟退休继续实施!公务员和事业单位员工不能向后延?

王五说说看
2026-01-18 08:23:52
不要轻易做手术!医生提醒:65岁后,这4类手术可尽量避免

不要轻易做手术!医生提醒:65岁后,这4类手术可尽量避免

路医生健康科普
2026-01-23 10:10:57
中央军委印发《军队党组织选举工作规定》,2月1日起施行

中央军委印发《军队党组织选举工作规定》,2月1日起施行

界面新闻
2026-01-25 18:06:29
牢A太坏了,让多少留学生和陪读妈妈破防了!眼瞅着瞒不住了!

牢A太坏了,让多少留学生和陪读妈妈破防了!眼瞅着瞒不住了!

小娱乐悠悠
2026-01-23 09:14:04
弗里克:德容卡与萨多搭档还不错;坎塞洛仍然需要适应

弗里克:德容卡与萨多搭档还不错;坎塞洛仍然需要适应

kio鱼
2026-01-26 08:54:56
2026-01-26 11:12:49
IT爱好者小尚
IT爱好者小尚
分享IT教育类信息
630文章数 55关注度
往期回顾 全部

科技要闻

印奇出任阶跃星辰董事长

头条要闻

张雨绮被实名举报代孕、插足婚姻 已退出辽宁春晚

头条要闻

张雨绮被实名举报代孕、插足婚姻 已退出辽宁春晚

体育要闻

叛逆的大公子,要砸了贝克汉姆这块招牌

娱乐要闻

张雨绮被实名举报代孕、插足婚姻

财经要闻

现货黄金历史首次突破5000美元

汽车要闻

别克至境E7内饰图曝光 新车将于一季度正式发布

态度原创

游戏
家居
时尚
旅游
军事航空

舅舅党100%确认次世代版大镖客2存在!或受GTA影响

家居要闻

流韵雅居,让复杂变纯粹

伊姐周日热推:电视剧《太平年》;电视剧《暗恋者的救赎》......

旅游要闻

北京颐和园游人如织

军事要闻

委代总统称遭美威胁:马杜罗已死

无障碍浏览 进入关怀版