MEANMongoDB

MEAN Stack กับฐานข้อมูล: ภาควิธีใช้ PostgresSQL

เรื่องที่เกี่ยวข้อง - , , ,

มาจัดอบรมเรื่องการทำเว็บแอพด้วย MEAN Stack ที่โรงงานของ บริษัท ไทย นิปปอน เซเกอิ มีโจทย์ที่น่าสนใจ คือ

ถึงแม้ MEAN Stack โดยปกติจะใช้ MongoDB เป็นฐานข้อมูล แต่ที่โรงงานยังใช้ PostgreSQL อยู่ จะใช้ MEAN กับ Postgres ได้ไหม?

ได้แน่นอน

เพราะถ้าเราย้อนไปดูภาพใหญ่ MEAN เป็นการรวมเทคโนโลยีเข้ามาใช้ในแต่ละส่วนของ Web Stack ดังภาพ

MEAN-application-stack

Web Application Stack แบบ MEAN

จะเห็นว่าส่วนของ Database ที่เป็น MongoDB นั้น สามารถสลับไปใช้ฐานข้อมูลอื่นได้ อย่าง MySQL, CouchDB, หรือแม้แต่ Postgres ที่เรากำลังอ่านอยู่นี้

ซึ่งถ้าเข้าใจแนวคิดการทำงานแบบ Module ของ NodeJS แล้ว เหมือนป้อนกล้วยเข้าปากลิงเลยล่ะ

วิธีติดตั้ง PostgresSQL Module

ในที่นี้ โค้ชพลเลือกใช้ pg-promise ซึ่งเป็น Node ที่ใช้งานได้ดีตัวหนึ่งเลยทีเดียว

ขั้นแรกก็ต้องสั่งติดตั้ง Node Package สำหรับเชื่อมต่อกับ PostgresSQL ก่อนเลย

npm install pg-promise

วิธีต่อฐานข้อมูล Postgres จาก MEAN Stack

ในที่นี้โค้ชพล เริ่มเชื่อมต่อภายในไฟล์ app.js ซึ่งเป็นแกนหลักของ ExpressJS เลยนะ

var pop = require('pg-promise');

จากนั้นเราก็สร้าง Database Instance ใช้ในเว็บแอพของเราได้

var db = pgp("postgres://username:password@host:port/database");

จากนั้นถ้าต้องการใช้ Database Instance เราก็ส่งเข้าไปทาง request object ทาง Middleware

app.use(function(req, res, next){
   req.db = db;
   next();
});

เป็นอันเสร็จพิธีเตรียม Database Instance

ทีนี้จะใช้ SQL Statement ยังไงลองดูด้านล่างกันเล้ย

วิธีใช้ SQL Statement กับ Postgres ใน ExpressJS

พอถึงเวลาเรียกใช้ เราก็สามารถดึง Database Instance เข้ามาใน Route ที่ต้องการได้เช่น

route.get('/', function(req, res, next){
   var db = req.db;
   ...
});

แล้วเราก็สามารถใช้ SQL query ข้อมูลได้ในรูปแบบของ JavaScript Promise นี่แหละ

db.any("select * from users")
    .then(function (data) {
        // success เข้า function นี้;
    })
    .catch(function (error) {
        // error เข้า function นี้;
    });

หรือถ้าต้องการ Insert ข้อมูลเข้า Postgres ก็ตามนี้ได้สบายๆ

db.none("insert into users(name,password) values($1, $2)", ['Teerasej', password])
    .then(function () {
        // success;
    })
    .catch(function (error) {
        // error;
    });

น่าจะพอเห็นภาพการใช้งานฐานข้อมูล Postgres กับ MEAN Stack แล้วล่ะ สนใจดูรายละเอียดเพิ่มเติมได้ที่นี่ หรือสงสัยอะไรมาคุยกันใน comment ด้านล่างจ้า

อบรม MEAN Stack ในองค์กร

สนใจจัดอบรม MEAN Stack เข้าใจได้ง่าย สบายๆ ที่บริษัท หรือองค์กร โทร 083-071-3373 ได้เลยครับ

อ้างอิง – pg-promise, ExpressJS 

 

Loading Facebook Comments ...
Menu