สอน Node.js ตอนที่ 10 การกำหนดเส้นทาง Routing ใน ExpressJS

สอน Node.js ตอนที่ 10 การกำหนดเส้นทาง Routing ใน ExpressJS

Routing เป็นการกำหนด URI (Endpoints) และ Methods ภายใน Applications ว่าให้ตอบสนองอย่างไรเมื่อ Client ทำการเรียกเข้ามา เป็นเรื่องแรกที่ควรเข้าใจเมื่อเราใช้ Node.js + ExpressJS ในการสร้างเว็บไซต์ หรือ API

Feb 23, 2018

แก้ไขล่าสุด มีผู้อ่าน 497  |  NODE.JS

Routing เป็นการกำหนด URI (Endpoints) และ  Methods ภายใน Applications ว่าให้ตอบสนองอย่างไรเมื่อ Client ทำการเรียกเข้ามา เป็นเรื่องแรกที่ควรเข้าใจเมื่อเราใช้ Node.js + ExpressJS ในการสร้างเว็บไซต์ หรือ API

การกำหนด Routing คล้ายกับการกำหนดว่า URL ที่เรียกมาจากภายนอกจะเข้ามาที่โค้ดคำสั่งไหนภายใน ExpressJS ของเรา มีตัวอย่างดังนี้ 

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!");
});

URI กับ URL นั่นอ้างอิงไปที่เดียวกัน เพียงแต่ถ้าเราพูดถึงทรัพยากรภายในเครื่องจะใช้ URI  ส่วน URL จะพูดถึงตำแหน่ง (Location) ที่อยู่ในมุมมองจากภายนอกเข้ามามากกว่า 

 

ถ้าเรียกมาด้วย http://localhost:3000 คำสั่งส่วนนี้จะทำงาน

app.get("/", (req, res) => {
	res.send("hello world");
});

ได้ผลลัพธ์เป็น 

hello world

 

ถ้าเรียกมาด้วย http://localhost:3000/users/olanlab คำสั่งส่วนนี้จะทำงาน

app.get("/users/:userId", (req, res) => {
    res.send(req.params);
});

ได้ผลลัพธ์เป็น 

{"userId":"olanlab"}

 


จากตัวอย่างด้านที่ผ่านมาจะเป็นการจัดการ HTTP Method แบบ get เพียงอย่างเดียว แต่ HTTP ยังมี Method แบบอื่นๆ ที่มีความหมายแตกต่างกัน ดังนี้

การประกาศใช้ HTTP Method อื่นๆ สามารถทำได้โดย object ของ express ตามด้วย Method ที่ต้องการ

// GET method route
app.get("/", function(req, res) {
    res.send("GET request to the homepage");
});

// POST method route
app.post("/", function(req, res) {
    res.send("POST request to the homepage");
});

 

การรวม HTTP Method ต่างที่มายัง URL ตัวเดียวกัน สามารถทำได้อย่างง่ายๆ

app.route("/book")
    .get(function(req, res) {
        res.send("Get a random book");
    })
    .post(function(req, res) {
        res.send("Add a book");
    })
    .put(function(req, res) {
        res.send("Update the book");
    });


 

สุดท้ายการกำหนดว่า parameters ที่เข้ามาผ่าน URL โดยใช้ : ตามด้วยชื่อ parameters ทำให้ที่ Callback Method สามารถอ้างอิงถึง paramters ตัวนั่นได้ผ่าน req.params.xxx โดย xxx คือชื่อ parameters นั่นเอง 

app.get("/users/:userId/books/:bookId", function(req, res) {
    res.send(req.params);
});

ผลลัพธ์

 


แบ่งปัน

ชอบ +1

บันทึก

ฝากคำถาม คำแนะนำ ได้ที่

Facebook : Share.OlanLab.Com
LINE ID : @olanlab
อีเมล์ : olan@olanlab.com
Share คลังความรู้ด้านเทคโนโลยี สารสนเทศ นวัตกรรมคอมพิวเตอร์ สอนเขียนโปรแกรม Php Java Html CSS Javascript C C++ Objective-C และอื่นๆ บนระบบปฏิบัติการ Window Linux Unix CentOS IOS Android
โดยผู้เขียนที่มีความเชี่ยวชาญเฉพาะ ให้บริการพื้นที่สำหรับนักเขียนที่ต้องการแบ่งปันความรู้ พร้อมให้คำปรึกษาแก่ผู้ที่สนใจ โดยไม่เสียค่าใช้จ่าย