มาจัดอบรมเรื่องการทำเว็บแอพด้วย MEAN Stack ที่โรงงานของ บริษัท ไทย นิปปอน เซเกอิ มีโจทย์ที่น่าสนใจ คือ
ถึงแม้ MEAN Stack โดยปกติจะใช้ MongoDB เป็นฐานข้อมูล แต่ที่โรงงานยังใช้ PostgreSQL อยู่ จะใช้ MEAN กับ Postgres ได้ไหม?
ได้แน่นอน
เพราะถ้าเราย้อนไปดูภาพใหญ่ MEAN เป็นการรวมเทคโนโลยีเข้ามาใช้ในแต่ละส่วนของ Web Stack ดังภาพ
จะเห็นว่าส่วนของ 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