ExpressJS - การกำหนดเส้นทาง

เว็บเฟรมเวิร์กจัดเตรียมทรัพยากรเช่นเพจ HTML สคริปต์รูปภาพ ฯลฯ ในเส้นทางต่างๆ

ฟังก์ชันต่อไปนี้ใช้เพื่อกำหนดเส้นทางในแอปพลิเคชัน Express -

app.method (เส้นทางตัวจัดการ)

วิธีนี้สามารถนำไปใช้กับกริยา HTTP ตัวใดตัวหนึ่ง - get, set, put, delete นอกจากนี้ยังมีวิธีการอื่นซึ่งดำเนินการโดยไม่ขึ้นกับประเภทคำขอ

เส้นทางคือเส้นทางที่คำขอจะทำงาน

Handler เป็นฟังก์ชันเรียกกลับที่ดำเนินการเมื่อพบประเภทคำขอที่ตรงกันบนเส้นทางที่เกี่ยวข้อง ตัวอย่างเช่น,

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

app.get('/hello', function(req, res){
   res.send("Hello World!");
});

app.listen(3000);

หากเราเรียกใช้แอปพลิเคชันของเราและไปที่ localhost:3000/helloเซิร์ฟเวอร์ได้รับคำขอในเส้นทาง "/hello"แอป Express ของเราเรียกใช้ไฟล์ callback ฟังก์ชันที่แนบมากับเส้นทางนี้และส่ง "Hello World!" เป็นการตอบสนอง

นอกจากนี้เรายังสามารถมีหลายวิธีที่แตกต่างกันในเส้นทางเดียวกัน ตัวอย่างเช่น,

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

app.get('/hello', function(req, res){
   res.send("Hello World!");
});

app.post('/hello', function(req, res){
   res.send("You just called the post method at '/hello'!\n");
});

app.listen(3000);

ในการทดสอบคำขอนี้ให้เปิดเทอร์มินัลของคุณและใช้ cURL เพื่อดำเนินการตามคำขอต่อไปนี้ -

curl -X POST "http://localhost:3000/hello"

วิธีพิเศษ allExpress จัดเตรียมไว้เพื่อจัดการเมธอด http ทุกประเภทในเส้นทางเฉพาะโดยใช้ฟังก์ชันเดียวกัน หากต้องการใช้วิธีนี้ให้ลองทำดังต่อไปนี้

app.all('/test', function(req, res){
   res.send("HTTP method doesn't have any effect on this route!");
});

โดยทั่วไปวิธีนี้ใช้สำหรับการกำหนดมิดเดิลแวร์ซึ่งเราจะพูดถึงในบทมิดเดิลแวร์

เราเตอร์

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

var express = require('express');
var router = express.Router();

router.get('/', function(req, res){
   res.send('GET route on things.');
});
router.post('/', function(req, res){
   res.send('POST route on things.');
});

//export this router to use in our index.js
module.exports = router;

ตอนนี้เพื่อใช้เราเตอร์นี้ในไฟล์ index.jsพิมพ์ดังต่อไปนี้ก่อนหน้าไฟล์ app.listen การเรียกใช้ฟังก์ชัน

var express = require('Express');
var app = express();

var things = require('./things.js');

//both index.js and things.js should be in same directory
app.use('/things', things);

app.listen(3000);

app.use ฟังก์ชั่นการโทรบนเส้นทาง '/things' แนบไฟล์ thingsเราเตอร์ด้วยเส้นทางนี้ ตอนนี้ไม่ว่าคำขอใดก็ตามที่แอปของเราได้รับที่ '/ things' เราเตอร์ things.js จะจัดการ '/'route ใน things.js เป็นรูทย่อยของ '/ things' เยี่ยมชม localhost: 3000 / สิ่ง / และคุณจะเห็นผลลัพธ์ต่อไปนี้

เราเตอร์มีประโยชน์มากในการแยกข้อกังวลและรวบรวมส่วนที่เกี่ยวข้องของโค้ดของเราไว้ด้วยกัน ช่วยในการสร้างรหัสที่บำรุงรักษาได้ คุณควรกำหนดเส้นทางของคุณที่เกี่ยวข้องกับเอนทิตีในไฟล์เดียวและรวมไว้โดยใช้วิธีการข้างต้นในไฟล์index.js ไฟล์.