自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

如何使用 Node.js 連接到 PostgreSQL 數(shù)據(jù)庫

數(shù)據(jù)庫
大多數(shù)編程語言都支持將應(yīng)用程序連接到 PostgreSQL 等數(shù)據(jù)庫。本文了解如何使用 node-postgres 模塊將 Node 應(yīng)用程序連接到 PostgreSQL。

Node.js 在連接到 PostgreSQL 時(shí)提供了很大的靈活性,但它也使整個(gè)過程變得簡(jiǎn)單。

大多數(shù)現(xiàn)實(shí)世界的應(yīng)用程序以一種或另一種方式與數(shù)據(jù)庫交互。數(shù)據(jù)庫使持久化、分析數(shù)據(jù)和與數(shù)據(jù)交互變得容易。

大多數(shù)編程語言都支持將應(yīng)用程序連接到 PostgreSQL 等數(shù)據(jù)庫。本文了解如何使用 node-postgres 模塊將 Node 應(yīng)用程序連接到 PostgreSQL。

如何開始

要開始連接到本地?cái)?shù)據(jù)庫,您需要安裝 PostgreSQL 服務(wù)器。

PostgresSQL因其靈活性和強(qiáng)大功能而成為最常見的關(guān)系數(shù)據(jù)庫系統(tǒng)之一。如果您的項(xiàng)目很復(fù)雜,或者您正在尋找包含開源精神的解決方案,您可能會(huì)考慮使用它作為 MySQL 的替代品。

創(chuàng)建 Node 應(yīng)用程序

第一步是創(chuàng)建一個(gè) Node 應(yīng)用程序,您將使用它來測(cè)試連接代碼。在您的首選文件夾中,創(chuàng)建一個(gè)新文件夾。

mkdir postgres-node

導(dǎo)航到您創(chuàng)建的文件夾并初始化 npm。

cd postgres-node
npm init -y

此命令應(yīng)生成一個(gè)package.json文件。

接下來,創(chuàng)建一個(gè)新文件并將其命名為index.js。您將在此文件中將 Node 連接到 PostgreSQL。

使用 node-postgres 模塊

node-postgres模塊是一個(gè) npm 包,它允許您連接到 PostgreSQL 數(shù)據(jù)庫并與之交互。使用 node-postgres 模塊可以使用兩個(gè)選項(xiàng)將 Node 與 PostgreSQL 連接:?jiǎn)蝹€(gè)客戶端或連接池。那么你應(yīng)該使用什么?

如果一次只需要一個(gè)靜態(tài)連接,請(qǐng)使用單個(gè)客戶端。但是,如果您需要使用并發(fā)和多個(gè)請(qǐng)求,請(qǐng)使用連接池。

安裝 node-postgres

在終端中運(yùn)行以下命令以安裝 node-postgres。

npm install pg

如果您使用 node >= 14.x,則需要稍后安裝 pg@8.2.xo。您可以通過像這樣將其添加到安裝命令后綴來指定版本號(hào)。

npm install pg=8.7.3

連接到 PostgreSQL

node-postgres 模塊需要以下值才能連接到 PostgreSQL 數(shù)據(jù)庫:

  • PGUSER – 要連接的 PostgreSQL 用戶名。
  • PGHOST – 要連接的服務(wù)器主機(jī)的名稱。
  • PGPASSWORD – PostgreSQL 服務(wù)器的密碼。
  • PGD??ATABASE – 您要連接的數(shù)據(jù)庫的名稱。
  • PGPORT – 在服務(wù)器主機(jī)上連接的端口號(hào)。

創(chuàng)建一個(gè) .env 文件并添加這些變量,替換數(shù)據(jù)庫中的相應(yīng)值:

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

安裝 dotenv 包以訪問 .env 文件:

npm install dotenv

在index.js中,導(dǎo)入并配置 dotenv:

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

使用單個(gè)客戶端連接到 PostgreSQL 數(shù)據(jù)庫

下面的代碼展示了如何使用單個(gè)客戶端將 Node 連接到 PostgreSQL 服務(wù)器:

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()

使用連接池

如前所述,連接池允許您向服務(wù)器發(fā)出多個(gè)連接請(qǐng)求:

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 文件控制數(shù)據(jù)庫配置。但是,您也可以使用標(biāo)準(zhǔn)環(huán)境變量提供這些配置值。這種方法使您可以在啟動(dòng)時(shí)輕松更改配置。

考慮以下連接代碼:

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)
}
}

在這個(gè)程序中,初始化 Pool 時(shí),您沒有將連接對(duì)象作為參數(shù)傳遞。相反,您必須在調(diào)用程序時(shí)指定連接詳細(xì)信息,如下所示:

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

像這樣將 Node 連接到 PostgreSQL 可以讓您編寫更可重用的程序。

使用 PostgreSQL 做更多事情

要?jiǎng)?chuàng)建與數(shù)據(jù)庫交互的應(yīng)用程序,您必須先將其連接到數(shù)據(jù)庫。在本文中,您學(xué)習(xí)了如何使用 node-Postgres 模塊將 Node 連接到 PostgreSQL 數(shù)據(jù)庫。

除了 PostgreSQL,您還可以在應(yīng)用程序中使用其他數(shù)據(jù)庫管理系統(tǒng),例如 MySQL。您選擇的數(shù)據(jù)庫工具應(yīng)該與您的數(shù)據(jù)需求最兼容。

責(zé)任編輯:趙寧寧 來源: Linux迷
相關(guān)推薦

2011-09-09 14:23:13

Node.js

2022-08-22 07:26:32

Node.js微服務(wù)架構(gòu)

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微服務(wù)Web

2022-08-28 16:30:34

Node.jsDocker指令

2021-06-15 15:03:21

MongoDBNode.jsCRUD

2023-01-10 14:11:26

2013-11-01 09:34:56

Node.js技術(shù)

2015-03-10 10:59:18

Node.js開發(fā)指南基礎(chǔ)介紹

2019-09-18 08:00:00

MySQL數(shù)據(jù)庫服務(wù)器

2021-03-03 06:39:05

Nodejs前端開發(fā)

2021-07-16 04:56:03

NodejsAddon

2021-10-25 09:00:37

Node.jsJS前端

2016-08-25 21:28:04

前端node截圖

2012-09-29 11:13:15

Node.JS前端開發(fā)Node.js打包

2021-07-03 17:43:03

Node.jsNode變量

2011-11-01 10:30:36

Node.js

2011-09-08 13:46:14

node.js

2011-09-02 14:47:48

Node
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)