NodeJS ตอนที่ 4 [ติดตั้งโมดูล และ Express framework]

NodeJS มีไลบรารี่ให้ใช้กว่า 2 แสนแพคเกจ (ณ วันที่ 6/2/2016) แม่เจ้า เยอะมากแล้วจะใช้ตัวไหนดี ดูทั้งหมดได้ที่ npmjs.com

หลักการเลือกใช้ไลบรารี่ทั่วไป แต่ละคนให้น้ำหนักไม่เท่ากัน ผมพิจาณาจาก เงื่อนไข ดังนี้

  • มีฟังก์ชั่นที่ผมต้องการ
  • ทำงานได้ถูกต้อง
  • ใช้งานง่าย มีเอกสารอ่านง่าย หาข้อมูลศึกษาได้เยอะ
  • ได้รับความนิยม ดูจากการโหวต
  • จำนวนของผู้เข้าร่วมพัฒนา
  • การ Support ความสม่ำเสมอในการออกเวอร์ชั่นใหม่ๆ

อั้ยย่ะ แค่เลือกใช้ไลบรารี่ สมัยนี้เสียเวลากว่าเขียนโค้ดอีกนะ

สำหรับการทำ * ระบบหลังบ้าน (Back End) มีไลบรารี่ในการทำ Web Framework ที่ได้รับความนิยมเท่าที่ผมรู้จักอยู่ 4 ตัว ได้แก่

  • Express – ออกมาเป็นตัวแรก เข้าใจได้ง่าย มี Feature มากมาย
  • Hapi – เน้นการเขียนลักษณะ Config และ Flow การทำงาน เน้นการสื่อสารให้ในทีมเข้าใจการทำงานของโค้ด
  • Restify  – เน้นทำ Web Api อย่างเดียว เพื่อเพิ่มความรวดเร็วของฟังก์ชั่น
  • Salis – เน้นการพัฒนาแบบ MVC , SOA สำหรับรองรับการพัฒนาของทีมและระบบใหญ่ๆ

ส่วนตัวแล้วเคยใช้แค่ Express กับ Restify เลือกใช้ Express เพราะมีฟังก์ชั่นเยอะครบเครื่องกว่าถึงแม้ Restify จะเร็วกว่าก็ตาม แต่ผมยังต้องการหน้าตาเว็บสำหรับบริหารจัดการระบบอยู่ถึงแม้ว่าจะทำแค่ระบบหลังบ้านก็ตาม ก็เลือกให้เหมาะกับงานและที่ถนัดครับ ไม่มีอะไรดีที่สุด มีดีมีเสียต่างกันไป

  • ระบบหลังบ้าน Backend คำศัพท์ ที่มักจะได้ยินจากนักพัฒนาอยู่เสมอ ก็เป็นแอพพลิเคชั่นที่มักจะทำงานร่วมกับ ฝั่งเซิร์ฟเวอร์ ไฟล์ หรือฐานข้อมูล ที่ใช้ร่วมกันเป็นหลัก โดยส่วนใหญ่ไม่มีหน้าจอ User Interface ให้ใช้งาน หรือหากมีก็ไม่ได้เน้นหน้าตาสวยงามมากนัก เพราะกลุ่มผู้ใช้มักจะเป็นผู้ดูแลระบบ เช่น ระบบบริหารจัดการข้อมูลผู้ใช้งาน เว็บเซอร์วิสที่ให้ อุปกรณ์มือถือหรือเว็บไซต์ติดต่อ เป็นต้น

ติดตั้งโมดูล

รูปแบบการติดตั้งคือ เปิดโปรแกรม Terminal หรือ Command Line แลัว พิมพ์ npm install ชื่อแพคเกจ

  • การติดตั้งต้องเชื่อมต่อ internet ได้

มาติดตั้ง express กัน พิมพ์คำสั่ง ดังนี้

npm install express

เมื่อสั่งติดตั้งเสร็จแล้วหากไม่เจอปัญหาอะไร จะมีการสร้างโฟลเดอร์ ชื่อ node_modules

สังเกตว่ามีโมดูลชื่อ express หรือไม่

expressmodule

  • หากเราเคยติดตั้ง express ไว้โปรเจคอื่นสามารถคัดลอกมาใช้ทั้งโฟล์เดอร์ได้เลย
  • หลังจาก nodejs อัพเวอร์ชั่น เป็นเลข 4.x.x ขึ้นไป แต่เดิม เป็น 0.x.x แล้วประกาศพร้อมรองรับงาน Enterprise มีสิ่งหนึ่งที่ผมไม่ชอบเลยคือ มีโมดูลที่ไม่จำเป็นสำหรับผมโผล่ขึ้นมามากมาย แต่ก็ไม่กล้าลบ ไม่รู้ว่าตัวไหนของ Node เอาไปใช้มั่งก็จำใจต้องเก็บไว้

เมื่อได้โมดูลของ express มาแล้วเรามาลองเขียนโค้ดกัน ดังนี้

  1. สร้างไฟล์ชื่อ ch4_express.js
  2. ป้อนโค้ด ดังนี้
var express = require("express");
var app = express();

app.get('/', function (req, res) {
console.log("Hello NodeJS!");
res.send('Hello NodeJS');
})

app.listen(3000);
console.log("My Service is listening to port 3000.");

3. รันคำสั่ง

node ch4_express.js

4. เปิด Browser พิมพ์ url คือ localhost:3000

helloexpress

อธิบายโค้ด

var express = require("express");

อ้างถึง express ไลบรารี่

var app = express();

สร้าง new instance  ของ expressใหม่ เก็บไว้ในตัวแปร app

app.get('/', function (req, res) {
console.log("Hello NodeJS!");
res.send('Hello NodeJS');
})

เมื่อมีการเรียก http get เข้ามาด้วยรูทพาธ / จะเข้ามาทำงานภายในฟังก์ชั่นข้างในขอบเขตของ

function (req,res){

}

console.log(“Hello NodeJS”) ทำการแสดงข้อความบน หน้าจอ Terminal

res.send(“Hello NodeJS”) ทำการส่งข้อความกลับไปยังฝั่งไคล์เอนต์

app.listen(3000);

ทำการเปิด port ไว้ที่เลข 3000

สำหรับรายละเอียดการทำงานของ Restful และสิ่งที่ควรรู้ทั่วๆไปเกี่ยวกับ Restful API จะอธิบายในตอนต่อไป

พบกับตอนที่ 5 Restful API