Node.js คือ ตอนที่ 3 : ระบบเครือข่าย (Networking) และ HTTP

  1. ทำความเข้าใจกับ HTTP และเครือข่าย (Networking) ใน Node.js
  2. รู้เบื้องต้นเกี่ยวกับ Express.js
  3. การทำแอพอย่างง่ายด้วย Express.js
  4. นอกเหนือจากพื้นฐาน

Node.js เป็นสภาพแวดล้อมรันไทม์ JavaScript แบบโอเพ่นซอร์สข้ามแพลตฟอร์มที่เรียกใช้ JavaScript นอกเว็บเบราว์เซอร์ Node.js สร้างขึ้นบนเอ็นจิ้น V8 JavaScript ของ Chrome ได้รับการพัฒนาขึ้นเมื่อนักพัฒนาดั้งเดิมของ JavaScript ขยายจากสิ่งที่คุณเรียกใช้ได้เฉพาะในเบราว์เซอร์ไปยังบางอย่างที่คุณสามารถเรียกใช้บนเครื่องของคุณเป็นแอปพลิเคชันแบบสแตนด์อโลน ตอนนี้คุณสามารถทำสิ่งต่างๆ ในการทำแอพได้มากขึ้นด้วย JavaScript ไม่ใช่แค่การทำให้การทำแอพโต้ตอบได้ Node.js ใช้เป็นหลักในการสร้างโปรแกรมเครือข่าย เช่น เว็บเซิร์ฟเวอร์ ทำให้เป็นส่วนสำคัญของเทคโนโลยีแบ็กเอนด์สมัยใหม่

1. ทำความเข้าใจกับ HTTP และเครือข่าย (Networking) ใน Node.js

แกนหลักของ Node.js อยู่ที่ความสามารถในการจัดการงานเครือข่าย โมดูล HTTP ในตัวช่วยให้ Node.js ถ่ายโอนข้อมูลผ่าน Hypertext Transfer Protocol (HTTP) Node.js เป็นตัวเลือกยอดนิยมสำหรับสร้างเว็บเซิร์ฟเวอร์และพัฒนาแอปพลิเคชันเครือข่าย

ในการสร้างเซิร์ฟเวอร์ใน Node.js โดยทั่วไปแล้ว คุณจะต้องมีโมดูล HTTP ซึ่งอนุญาตให้ Node.js ถ่ายโอนข้อมูลผ่าน HyperText Transfer Protocol (HTTP) นี่คือตัวอย่างเซิร์ฟเวอร์ Node.js อย่างง่าย:

const http = require('http');

const server = http.createServer((req, res) => {
    res.write('Hello World');
    res.end();
});

server.listen(3000, () => console.log('Server running on port 3000'));

วิธี นี้ createServer() จะเปลี่ยนคอมพิวเตอร์ของคุณให้เป็นเซิร์ฟเวอร์ HTTP server.listen()เป็นวิธีการที่ผูกเซิร์ฟเวอร์กับพอร์ตเฉพาะ ตอนนี้ หากคุณไป localhost:3000 ที่เบราว์เซอร์ คุณจะเห็น ‘Hello World’

แม้ว่า Node.js จะจัดการคำขอ/การตอบกลับ HTTP ได้ด้วยตัวเอง แต่การจัดการเฉพาะเจาะจงและกรณีขอบทั้งหมดอาจเป็นเรื่องที่น่าเบื่อ นี่คือที่มาของ Express.js

2. รู้เบื้องต้นเกี่ยวกับ Express.js

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

หากต้องการเริ่มทำงานกับ Express.js คุณต้องติดตั้งก่อน คุณสามารถทำได้โดยใช้ Node Package Manager (npm):

$ npm install express --save

การดำเนินการนี้จะติดตั้ง Express ในไดเร็กทอรีโปรเจ็กต์ของคุณ และเพิ่มไปยังการอ้างอิงใน package.json ไฟล์ ของคุณ

มาสร้างแอป Express อย่างง่ายกัน:

const express = require('express');
const app = express();

app.get('/', (req, res) => {
res.send('Hello World from Express.js');
});

app.listen(3000, () => console.log('Express server running on port 3000'));

ด้วยโค้ดเพียงไม่กี่บรรทัด คุณได้สร้างเซิร์ฟเวอร์พื้นฐานที่รับฟังคำขอ HTTP GET บน root ( '/') URL และตอบกลับด้วย ‘Hello World from Express.js’

3. การทำแอพอย่างง่ายด้วย Express.js

เพื่อสาธิตกระบวนการทำแอพด้วย Express.js เราจะสร้างแอปการจัดการงานพื้นฐาน เพื่อความง่าย เราจะหลีกเลี่ยงการใช้ฐานข้อมูลและจัดเก็บงานไว้ในหน่วยความจำ

ก่อนอื่นมาติดตั้ง Express และตั้งค่าเซิร์ฟเวอร์:

$ npm install express --save

จากนั้น สร้าง index.js ไฟล์และนำเข้า Express:

const express = require('express');
const app = express();

// This is needed to parse JSON body from POST requests
app.use(express.json());

let tasks = [];

app.get('/', (req, res) => {
res.send('Task Manager App');
});

app.listen(3000, () => console.log('Server running on port 3000'));

ตอนนี้ หากคุณเรียกใช้ node index.js และไปที่ localhost:3000 คุณจะเห็น ‘Task Manager App’

ตอนนี้เราพร้อมที่จะกำหนดจุดสิ้นสุดของเราแล้ว:

  1. GET ‘/tasks’: ส่งคืนรายการงาน
  2. POST ‘/tasks’: สร้างงานใหม่
  3. DELETE ‘/tasks/:id’: ลบงานที่มี id ที่ระบุ

ลองใช้สิ่งเหล่านี้:

// GET '/tasks'
app.get('/tasks', (req, res) => {
    res.send(tasks);
});

// POST '/tasks'
app.post('/tasks', (req, res) => {
    const task = req.body;
    tasks.push(task);
    res.send('Task added');
});

// DELETE '/tasks/:id'
app.delete('/tasks/:id', (req, res) => {
    const id = req.params.id;
    tasks = tasks.filter(task => task.id !== id);
    res.send('Task deleted');
});

ตอนนี้ คุณสามารถทดสอบจุดสิ้นสุดโดยใช้เครื่องมือเช่น Postman หรือ curl คุณได้สร้างแอปตัวจัดการงานพื้นฐานแล้ว!

4. นอกเหนือจากพื้นฐาน

แม้ว่าเราจะดูแค่ผิวเผิน แต่ตอนนี้คุณเห็นพลังของ Express.js และ Node.js แล้ว มีหลายสิ่งหลายอย่างที่คุณสามารถทำได้ เช่น การใช้การตรวจสอบผู้ใช้ การเชื่อมต่อกับฐานข้อมูล การตรวจสอบความถูกต้องของข้อมูลอินพุต การจัดการข้อผิดพลาดอย่างถูกต้อง การสร้างมิดเดิลแวร์ ฯลฯ

เมื่อทำแอพที่ซับซ้อนมากขึ้น คุณอาจต้องการวางโครงสร้างแอปพลิเคชันของคุณในสถาปัตยกรรม MVC (Model-View-Controller) โครงสร้างนี้พบได้ทั่วไปในเว็บแอปพลิเคชันและสามารถช่วยให้โค้ดของคุณเป็นระเบียบเมื่อแอปของคุณเติบโตขึ้น

นอกจากนี้ คุณควรพิจารณาเรียนรู้เกี่ยวกับแง่มุมอื่นๆ ของ Express.js และ Node.js เช่น การกำหนดเส้นทาง มิดเดิลแวร์ เอ็นจิ้นเทมเพลต และหลักปฏิบัติด้านความปลอดภัย แนวคิดเหล่านี้จะช่วยคุณทำแอพที่แข็งแกร่ง ปลอดภัย และปรับขนาดได้


Node.js และ Express.js เป็นเครื่องมือที่มีประสิทธิภาพสำหรับการทำแอพเครือข่ายและเว็บเซิร์ฟเวอร์ มีการใช้กันอย่างแพร่หลายในการพัฒนาระบบแบ็คเอนด์ที่ทันสมัย ​​และมีความยืดหยุ่นและพลังมหาศาล ด้วยความเข้าใจอย่างถ่องแท้เกี่ยวกับ JavaScript, HTTP และพื้นฐานของ Node.js และ Express.js คุณก็พร้อมที่จะเริ่มทำแอพ อย่ากลัวที่จะทำแอพและทดลอง – เป็นวิธีที่ดีที่สุดในการเรียนรู้


JavaScript คืออะไร

Node.js คือ ตอนที่ 2 : การเขียนโปรแกรมแบบอะซิงโครนัส (Asynchronous Programming)
Node.js คือ ตอนที่ 4 : การใช้งานฐานข้อมูล (Databases)