ในโลกของการพัฒนาเว็บแอปพลิเคชัน การทำให้แอปพลิเคชันของเราสามารถเชื่อมต่อกับผู้ใช้ได้อย่างมีประสิทธิภาพคือสิ่งที่สำคัญอย่างยิ่ง และ Express.js ก็เป็นเครื่องมือหนึ่งที่ช่วยให้การสร้างเว็บเซิร์ฟเวอร์เป็นเรื่องง่ายสำหรับผู้ที่ใช้ Node.js เป็นแพลตฟอร์มหลัก ในบทความนี้เราจะมาทำความรู้จักกับ Express.js โดยเฉพาะในเรื่องของการทำ Routing ซึ่งถือเป็นพื้นฐานที่สำคัญ
Express.js เป็นเฟรมเวิร์กเว็บที่มีชื่อเสียงในโลกของการพัฒนา Node.js เนื่องจากความง่ายในการใช้งานและโครงสร้างที่ยืดหยุ่น เหมาะสำหรับการพัฒนาแอปพลิเคชันที่ซับซ้อนทั้งในส่วนของการรับส่งข้อมูล และการจัดการ API
การติดตั้ง Express.js
ก่อนจะเริ่มต้นใช้งาน Express.js ต้องทำการติดตั้งผ่าน Node Package Manager (npm) โดยคำสั่งดังนี้:
npm init -y
npm install express --save
คำสั่งแรก `npm init -y` จะสร้างไฟล์ `package.json` ซึ่งใช้จัดการโปรเจ็กต์ ไปจนถึงจัดการ dependencies ต่างๆ ส่วนคำสั่งที่สอง `npm install express --save` จะติดตั้ง Express.js และบันทึกลงใน `package.json`
"Routing" ในการพัฒนาเว็บหมายถึงวิธีการกำหนดเส้นทางหรือที่อยู่ที่เว็บเซิร์ฟเวอร์จะใช้ในการประมวลผลคำร้องขอจากผู้ใช้ เมื่อมีคำร้องขอเข้ามาที่เซิร์ฟเวอร์ ระบบจะต้องรู้ว่าคำร้องขอนี้จะต้องถูกส่งไปยังฟังก์ชันหรือส่วนใดของแอปพลิเคชัน ตัวอย่างเช่น:
const express = require('express');
const app = express();
app.get('/', (req, res) => {
res.send('Hello, World!');
});
const PORT = process.env.PORT || 3000;
app.listen(PORT, () => {
console.log(`Server is running on port ${PORT}`);
});
ในโค้ดด้านบนเป็นตัวอย่างง่ายๆ ของ Express.js เซิร์ฟเวอร์ที่มีการ route เจอดีฟอลต์ (/) และตอบกลับด้วยคำว่า "Hello, World!".
Express.js รองรับ HTTP methods เต็มขั้น ประกอบด้วย GET, POST, PUT, DELETE และอื่นๆ ซึ่งการกำหนด Routing ที่แตกต่างกัน จะสามารถจัดการกับวิธี HTTP ที่ต่างกันได้ ตัวอย่างเช่น:
app.get('/users', (req, res) => {
res.send('Retrieve user list');
});
app.post('/users', (req, res) => {
res.send('Create a new user');
});
app.put('/users/:id', (req, res) => {
res.send(`Update user with id ${req.params.id}`);
});
app.delete('/users/:id', (req, res) => {
res.send(`Delete user with id ${req.params.id}`);
});
การใช้งานพารามิเตอร์ใน Routing
พารามิเตอร์ในเส้นทางช่วยให้เราสามารถรับข้อมูลจากส่วน URL ที่ผู้ใช้ร้องขอได้ โดยใช้เครื่องหมาย ':' ตัวอย่างเช่น `/users/:id` โดยการทำเช่นนี้ Express.js จะใช้พารามิเตอร์ที่อยู่ในคำร้องขอผ่านทาง `req.params`
ในบางกรณี เราอาจต้องการรันโค้ดบางอย่าง หรือทำการเปลี่ยนแปลงคำร้องขอก่อนถึงฟังก์ชันที่ระบุใน Routing สามารถทำได้โดยใช้ Middleware ตัวอย่าง:
const logger = (req, res, next) => {
console.log(`${req.method} ${req.url}`);
next();
};
app.use(logger);
app.get('/', (req, res) => {
res.send('Home page');
});
ในตัวอย่างนี้ ทุกคำร้องขอจะต้องผ่าน middleware `logger` ก่อนที่จะไปถึง route ถัดไป
สำหรับโปรเจ็กต์ที่ซับซ้อน Express.js มีความสามารถในการจัดการกับ Routing ให้เป็นระเบียบมากขึ้นผ่าน Router ใน Express.js คุณสามารถใช้งานได้ดังนี้:
const express = require('express');
const app = express();
const router = express.Router();
router.get('/profile', (req, res) => {
res.send('User profile page');
});
router.get('/settings', (req, res) => {
res.send('User settings page');
});
// Add router as middleware
app.use('/user', router);
ในตัวอย่างนี้ router ถูกกำหนดเส้นทางภายใต้ `/user` ส่งผลให้ `/user/profile` และ `/user/settings` มีเส้นทางในระบบ
การใช้งาน Express.js ในการพัฒนา Node.js แอปพลิเคชันมีประโยชน์อย่างมากมายจากโครงสร้างที่เรียบง่าย และการสนับสนุนการใช้งานที่ยืดหยุ่น โดยเฉพาะการทำ Routing ที่ช่วยจัดการคำร้องขอของผู้ใช้ได้อย่างมีประสิทธิภาพ ด้วยความสามารถต่างๆ ที่ได้กล่าวมาข้างต้น นักพัฒนาจึงสามารถออกแบบแอปพลิเคชันที่ซับซ้อนได้อย่างมีประสิทธิภาพและยืดหยุ่น
หากคุณสนใจที่อยากเรียนรู้เพิ่มเติมเกี่ยวกับ Node.js และ Express.js หรือรับคำแนะนำจากครูผู้เชี่ยวชาญ อย่าลืมพิจารณาเรียนกับเรา EPT ซึ่งเป็นสถาบันสอนเขียนโปรแกรมที่พร้อมจะพาคุณไปสู่ความสำเร็จในสายงานนี้!
หมายเหตุ: ข้อมูลในบทความนี้อาจจะผิด โปรดตรวจสอบความถูกต้องของบทความอีกครั้งหนึ่ง บทความนี้ไม่สามารถนำไปใช้อ้างอิงใด ๆ ได้ ทาง EPT ไม่ขอยืนยันความถูกต้อง และไม่ขอรับผิดชอบต่อความเสียหายใดที่เกิดจากบทความชุดนี้ทั้งทางทรัพย์สิน ร่างกาย หรือจิตใจของผู้อ่านและผู้เกี่ยวข้อง
หากเจอข้อผิดพลาด หรือต้องการพูดคุย ติดต่อได้ที่ https://m.me/expert.Programming.Tutor/
Tag ที่น่าสนใจ: java c# vb.net python c c++ machine_learning web database oop cloud aws ios android
หากมีข้อผิดพลาด/ต้องการพูดคุยเพิ่มเติมเกี่ยวกับบทความนี้ กรุณาแจ้งที่ http://m.me/Expert.Programming.Tutor
085-350-7540 (DTAC)
084-88-00-255 (AIS)
026-111-618
หรือทาง EMAIL: NTPRINTF@GMAIL.COM