การสร้าง Web Application ด้วย Node.js
โดยใช้เพียง Modules ที่ทาง Node.js มีมาให้นั่น ค่อนข้างลำบากและซับซ้อน เนื่องจากเราต้องเขียนเพื่อจัดการเองเกือบทุกอย่าง ตัวอย่างเช่น Request, Response และการจัดการ URL ที่เข้ามา การเขียนนั่นฟรีสไตล์ไม่มีโครงสร้าง ไม่มี Framework ทำให้เวลาเขียนร่วมกันเป็นทีมแล้ว จะนำโค้ดมารวมกันทำได้ยาก
ทีมงานของ StrongLoop IBM จึงสร้าง Framework มาครอบบน Node.js อีกทีเรียก Framework นี้ว่า ExpressJS
ExpressJS
คือ Web Framework สำหรับ Node.js สามารถสร้างเว็บไซต์แบบปกติ หรือสร้างเป็น Web Service เพื่อเป็น API ให้เรียกใช้งานได้อย่างง่ายๆ ส่วนสำคัญของ ExpressJS ประกอบด้วย middleware, routing, Template Engine ให้เราสามารถใช้งานและเขียนโค้ดให้ได้ตามที่เราต้องการ โดยโครงสร้าง ExpressJS จะมีลักษณะตามรูปด้านล่าง
Middleware
Middleware คือ Functions ที่เข้าถึง ปรับแต่ง แก้ไข req (HTTP Request), resp (HTTP Response) และสามารถเรียก Middleware ตัวต่อๆ ไปได้ เรื่อยๆ Middleware นั่นถูกนำมาใช้ในการจัดการ Cookie, Session, Authentication, Log และอื่นๆ
Routing
เป็นการกำหนด URI (Endpoints) และ Methods ภายใน Applications ว่าให้ตอบสนองอย่างไรเมื่อ Client ทำการเรียกเข้ามา เราจะกำหนดว่า URL ที่เรียกเข้ามาให้ทำอะไร ส่งอะไรกลับไปหาผู้ใช้จาก Routing
Template Engine
คือไฟล์ Template เมื่อเรียกใช้และส่งค่าตัวแปรเข้าไป จะแปลงส่งค่ากลับมาเป็น HTML ทำให้สะดวกต่อการออกแบบ HTML และลดการซ้ำซ้อน Template Engine ทีใช้บน ExpressJS สามารถใช้ได้หลายตัว ประกอบด้วย Pug, Mustache, EJS
เริ่มต้นสร้างเว็บไซต์ด้วย ExpressJS แบบง่ายๆ
1. ติดตั้ง ExpressJS
npm install --save express
เป็นการติดตั้ง Module ของ express ภายใน Project ของเรา โดยไฟล์จะถูกเก็บไว้ที่ node_modules
2. สร้างไฟล์ app.js เขียนโค้ดตามด้านล่าง
var express = require("express");
var app = express();
app.get("/", (req, res) => {
res.send("hello world");
});
app.get("/users/:userId", (req, res) => {
res.send(req.params);
});
app.listen(3000, () => {
console.log("Server listening on port 3000!");
});
3. สั่ง Run
node app.js
ลองทดสอบด้วยการเข้าไปที่ http://localhost:3000, http://localhost:3000/users/jame