Company insights

การสร้างไฟล์เชื่อมต่อฐานข้อมูล PostgreSQL ด้วย Node.js


เมื่อพัฒนา Backend ด้วย Node.js และต้องการเชื่อมต่อกับฐานข้อมูล PostgreSQL
นิยมแยกไฟล์สำหรับการเชื่อมต่อฐานข้อมูลออกมาเป็นไฟล์เฉพาะ เช่น db.js
เพื่อให้สามารถเรียกใช้งานได้จากหลายส่วนของโปรเจกต์ เช่น routes หรือ controllers
ทำให้โค้ดเป็นระเบียบและง่ายต่อการดูแลรักษา

1. ติดตั้ง PostgreSQL Driver สำหรับ Node.js


เริ่มต้นด้วยการติดตั้ง package pg ซึ่งเป็น PostgreSQL client สำหรับ Node.js


npm install pg

2. สร้างไฟล์เชื่อมต่อฐานข้อมูล


สร้างไฟล์ชื่อ db.js ภายในโฟลเดอร์โปรเจกต์


const { Pool } = require('pg');

const pool = new Pool({
 user: 'postgres',
 host: 'localhost',
 database: 'mydatabase',
 password: '1234',
 port: 5432,
});

module.exports = pool;


คำอธิบายค่าที่ใช้ในการเชื่อมต่อ


  • user : ชื่อผู้ใช้ของ PostgreSQL

  • host : เซิร์ฟเวอร์ฐานข้อมูล (ส่วนใหญ่เป็น localhost)

  • database : ชื่อฐานข้อมูล

  • password : รหัสผ่านของ PostgreSQL

  • port : port ของ PostgreSQL ปกติคือ 5432

3. เรียกใช้งานไฟล์เชื่อมต่อใน Server


ตัวอย่างการใช้งานไฟล์ db.js ภายในไฟล์ server.js


const express = require('express');
const app = express();
const db = require('./db');

app.get('/users', async (req, res) => {
 try {
   const result = await db.query('SELECT * FROM users');
   res.json(result.rows);
 } catch (error) {
   console.error(error);
   res.status(500).send('Database error');
 }
});

app.listen(3000, () => {
 console.log('Server running on port 3000');
});

4. ทดสอบการเชื่อมต่อฐานข้อมูล


สามารถทดสอบการเชื่อมต่อ PostgreSQL ได้โดยเพิ่มโค้ดตรวจสอบในไฟล์ db.js


pool.connect()
 .then(() => {
   console.log('Connected to PostgreSQL');
 })
 .catch(err => {
   console.error('Connection error', err);
 });

5. ตัวอย่างโครงสร้างโปรเจกต์


node-api

├── server.js
├── package.json

├── config
│   └── db.js

├── routes
│   └── userRoutes.js

├── controllers
│   └── userController.js

└── node_modules


การแยกไฟล์เชื่อมต่อฐานข้อมูลไว้ในโฟลเดอร์ config
ช่วยให้โปรเจกต์เป็นระเบียบ และสามารถนำไปใช้ได้กับหลายโมดูล

สรุป


การตั้งค่าไฟล์เชื่อมต่อ PostgreSQL ใน Node.js นิยมสร้างไฟล์แยก เช่น db.js
โดยใช้ package pg สำหรับจัดการการเชื่อมต่อ
จากนั้น export ตัวแปร pool เพื่อให้ไฟล์อื่น ๆ ในโปรเจกต์สามารถเรียกใช้งาน
คำสั่ง query ของฐานข้อมูลได้ ทำให้การพัฒนา API หรือ Web Application
มีโครงสร้างที่ชัดเจนและง่ายต่อการขยายระบบในอนาคต