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

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.

相关推荐
热点推荐
新冠后遗症对人体的最大影响,很多人深受其害,有些人还不自知

新冠后遗症对人体的最大影响,很多人深受其害,有些人还不自知

呼吸科大夫胡洋
2026-02-22 11:39:12
北京高速服务区0座闪充,卡住国家新能源战略?比亚迪一招绕开

北京高速服务区0座闪充,卡住国家新能源战略?比亚迪一招绕开

沙雕小琳琳
2026-05-04 18:36:41
八千里路云和月:从空姐到国家一级演员,低调的她用演技说话

八千里路云和月:从空姐到国家一级演员,低调的她用演技说话

陈意小可爱
2026-05-05 01:00:41
吴石案揭露:为何三人获烈士称号,聂曦却被排除?

吴石案揭露:为何三人获烈士称号,聂曦却被排除?

鉴史录
2026-05-04 10:25:18
C罗越位位置接球,单刀面对门将却思考人生丢失球权

C罗越位位置接球,单刀面对门将却思考人生丢失球权

懂球帝
2026-05-04 17:32:44
昆明酒店劫持案细节披露:歹徒连续射击,反恐队员防弹衣连中两枪,“我明显感觉已中枪”

昆明酒店劫持案细节披露:歹徒连续射击,反恐队员防弹衣连中两枪,“我明显感觉已中枪”

南方都市报
2026-05-04 15:50:16
伊美谈判风向突变,伊朗让步换对话,特朗普态度强硬设重重门槛

伊美谈判风向突变,伊朗让步换对话,特朗普态度强硬设重重门槛

小小科普员
2026-05-04 15:50:33
18亿+凌晨档+无国足!FIFA想割韭菜?亚洲多国说不,中国不惯着

18亿+凌晨档+无国足!FIFA想割韭菜?亚洲多国说不,中国不惯着

曹老师评球
2026-05-04 18:36:46
说走就走、撤得干干净净的人,终究还是回来了。

说走就走、撤得干干净净的人,终究还是回来了。

小光侃娱乐
2026-04-20 12:40:03
超级外援合同到期!季后赛单场狂砍43+6,休赛期恐遭多支球队哄抢

超级外援合同到期!季后赛单场狂砍43+6,休赛期恐遭多支球队哄抢

老叶评球
2026-05-04 22:18:38
伦敦世乒赛:首个16强席位出炉!黄镇廷领衔3:0,奥运亚军被淘汰

伦敦世乒赛:首个16强席位出炉!黄镇廷领衔3:0,奥运亚军被淘汰

国乒二三事
2026-05-04 18:51:08
年轻人最爱的酒店,亚朵排第二 | 报告

年轻人最爱的酒店,亚朵排第二 | 报告

DT商业观察
2026-05-04 11:59:26
我是如何从15万炒到970万的,始终牢记一招“开盘就冲3和5,横7竖8是猛虎”,几乎吃掉全部短线涨幅

我是如何从15万炒到970万的,始终牢记一招“开盘就冲3和5,横7竖8是猛虎”,几乎吃掉全部短线涨幅

新浪财经
2026-05-04 18:42:15
知名女星自曝:7年没性行为!流泪求救,被强行注射50针不明液体

知名女星自曝:7年没性行为!流泪求救,被强行注射50针不明液体

草莓解说体育
2026-05-04 01:09:39
山东省“点名批评”的5所大学!毕业证含金量很低,学生谨慎报考

山东省“点名批评”的5所大学!毕业证含金量很低,学生谨慎报考

何轐说
2026-05-05 01:08:41
於女王战胜吴侑珍,获对抗赛首胜!2026中韩女子五强对抗赛!

於女王战胜吴侑珍,获对抗赛首胜!2026中韩女子五强对抗赛!

格斗联盟王大锤
2026-05-05 04:32:47
仰天长叹后跺脚沮丧!19岁松岛抢五又输球 日媒:被逆转远低预期

仰天长叹后跺脚沮丧!19岁松岛抢五又输球 日媒:被逆转远低预期

颜小白的篮球梦
2026-05-04 09:18:03
身份证换新证后,必须马上做这3件事!少一件都不行

身份证换新证后,必须马上做这3件事!少一件都不行

椰青美食分享
2026-05-04 14:16:25
多所大学倒闭!失业教授能去中小学代课已属幸运

多所大学倒闭!失业教授能去中小学代课已属幸运

深度报
2026-05-04 22:16:43
女子啃老10年,自尽后老母亲收拾房间发现银行卡,查看余额后崩溃

女子啃老10年,自尽后老母亲收拾房间发现银行卡,查看余额后崩溃

白云故事
2025-03-17 07:55:10
2026-05-05 06:20:49
IT爱好者小尚
IT爱好者小尚
分享IT教育类信息
630文章数 55关注度
往期回顾 全部

科技要闻

在中国市场搞「付费订阅」,豆包咋想的?

头条要闻

视频:特朗普出席活动前传枪声 特勤局出动封锁白宫

头条要闻

视频:特朗普出席活动前传枪声 特勤局出动封锁白宫

体育要闻

骑士破猛龙:加雷特·阿伦的活力

娱乐要闻

张敬轩还是站上了英皇25周年舞台

财经要闻

魔幻的韩国股市,父母给婴儿开户买股票

汽车要闻

同比大涨190% 方程豹4月销量29138台

态度原创

手机
教育
健康
艺术
军事航空

手机要闻

小米17 Max本月发布 小米手机史上最大电池

教育要闻

初三女生经常反胃恶心,妈妈误以为装病,真相竟是孩子的心理求救

干细胞治烧烫伤面临这些“瓶颈”

艺术要闻

震惊!43岁妈妈晒女儿合影,30万网友猜测身份!

军事要闻

特朗普回绝伊朗新方案

无障碍浏览 进入关怀版