ที่นี่เราใช้โมดูล Node.js ที่ได้รับความนิยมสูงสุด "node-postgres" สำหรับการเชื่อมต่อฐานข้อมูล PostgreSQL กับ Node.js

ก่อนที่จะพูดคุยถึงวิธีเชื่อมต่อ PostgreSQL กับ Node.js ให้พิจารณาว่า Node.js และ PostgreSQL ได้รับการติดตั้งในสภาพแวดล้อมของคุณแล้ว

ติดตั้งโมดูล PostgreSQL ( pg ) โดยใช้ npm:

pg ติดตั้ง npm

มาดูวิธีต่างๆ ในการเชื่อมต่อ PostgreSQL กับ Node.js

  • ตัวแปรสภาพแวดล้อม
  • แบบเป็นโปรแกรม
  • URI การเชื่อมต่อ

ตัวแปรสภาพแวดล้อม

เมื่อกระบวนการ Node.js ของคุณบูทขึ้นมา ระบบจะให้การเข้าถึงตัวแปรสภาพแวดล้อมที่มีอยู่ทั้งหมดโดยอัตโนมัติโดยการสร้างอ็อบเจ็กต์ env เป็นคุณสมบัติของอ็อบเจ็กต์ กระบวนการทั่วโลก

console.log(process.env);

รหัสนี้ควรส่งออกตัวแปรสภาพแวดล้อมทั้งหมดที่กระบวนการ Node.js นี้ทราบ

หากต้องการเข้าถึงตัวแปรเฉพาะตัวใดตัวหนึ่ง ให้เข้าถึงตัวแปรดังกล่าวเหมือนกับคุณสมบัติของออบเจ็กต์:

console.log('ค่าของเส้นทางคือ:', process.env.PORT);

เนื่องจาก process.env เป็นเพียงออบเจ็กต์ปกติ เราจึงสามารถตั้งค่า/แทนที่ค่าต่างๆ ได้อย่างง่ายดาย:

process.env.MY_VARIABLE = 'ชื่อจำลอง';

ทำให้เราสามารถเขียนโปรแกรมของเราได้โดยไม่ต้องระบุข้อมูลการเชื่อมต่อในโปรแกรมและให้เรานำมาใช้ซ้ำเพื่อเชื่อมต่อกับฐานข้อมูลต่างๆโดยไม่ต้องแก้ไขโค้ด

db_connection.js

const { ลูกค้า } = need('pg');

ลูกค้า const = ไคลเอนต์ใหม่()
client.query('SELECT NOW()', (ผิดพลาด, res) =› {
console.log(err, res)
ไคลเอนต์ .end()
})

ค่าเริ่มต้นสำหรับตัวแปรสภาพแวดล้อมที่ใช้คือ:

PGHOST='localhost'
PGUSER=process.env.USER
PGDATABASE=process.env.DATABASE
PGPASSWORD=process.env.PASSWORD
PGPORT=5432

แบบเป็นโปรแกรม

node-postgres ยังรองรับการกำหนดค่าไคลเอนต์ทางโปรแกรมด้วยข้อมูลการเชื่อมต่อ

const { ลูกค้า } = need('pg');

ลูกค้า const = ลูกค้าใหม่ ({
ผู้ใช้: 'dbuser',
โฮสต์: 'database.server.com',
ฐานข้อมูล: 'mydb',
รหัสผ่าน: 'รหัสผ่านลับ',
พอร์ต: 3211,
})

ไคลเอนต์.เชื่อมต่อ()

client.query('SELECT NOW()', (err, res) =› {
console.log(err, res)
client.end()
})< /แข็งแกร่ง>

URI การเชื่อมต่อ

เราสามารถเริ่มต้นไคลเอนต์ด้วย URI สตริงการเชื่อมต่อได้เช่นกัน

const { ลูกค้า } = ต้องการ('pg')

const ConnectionString = 'postgresql://dbuser:[email protected]:3211/mydb'

ไคลเอนต์ const = ไคลเอนต์ใหม่ ({
การเชื่อมต่อสตริง: การเชื่อมต่อสตริง,

ไคลเอนต์.เชื่อมต่อ

client.query('SELECT NOW()', (err, res) =› {
console.log(err, res)
client.end()
})< /แข็งแกร่ง>

โปรดดูที่ "pg" สำหรับรายละเอียดเพิ่มเติม