บทช่วยสอน Node.js Express Framework – เรียนรู้ใน 10 นาที

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

Express.js คืออะไร?

Express.js คือเฟรมเวิร์กเซิร์ฟเวอร์แอปพลิเคชันเว็บ Node js ซึ่งได้รับการออกแบบมาโดยเฉพาะสำหรับการสร้างแอปพลิเคชันเว็บแบบหน้าเดียว หลายหน้า และแบบไฮบริด

มันได้กลายเป็นเฟรมเวิร์กเซิร์ฟเวอร์มาตรฐานสำหรับ node.js Express เป็นส่วนแบ็กเอนด์ของสิ่งที่เรียกว่า MEAN stack

MEAN เป็นโอเพ่นซอร์สฟรี Javaต้นฉบับ ซอฟต์แวร์สแต็กสำหรับสร้างเว็บไซต์แบบไดนามิกและแอปพลิเคชันเว็บซึ่งมีส่วนประกอบดังต่อไปนี้

1) MongoDB – ฐานข้อมูล NoSQL มาตรฐาน

2) Express.js – กรอบงานเว็บแอปพลิเคชันเริ่มต้น

3) Angular.js - Javaกรอบงานสคริปต์ MVC ที่ใช้สำหรับแอปพลิเคชันเว็บ

4) Node.js – กรอบงานที่ใช้สำหรับแอปพลิเคชันฝั่งเซิร์ฟเวอร์และเครือข่ายที่ปรับขนาดได้

เฟรมเวิร์ก Express.js ทำให้การพัฒนาแอปพลิเคชันเป็นเรื่องง่ายมาก ซึ่งสามารถใช้เพื่อจัดการกับคำขอหลายประเภท เช่น คำขอ GET, PUT และ POST และ DELETE

การติดตั้งและใช้งาน Express

Express จะได้รับการติดตั้งผ่าน Node Package Manager ซึ่งสามารถทำได้โดยดำเนินการตามบรรทัดต่อไปนี้ในบรรทัดคำสั่ง

npm ติดตั้งด่วน

คำสั่งข้างต้นร้องขอให้ตัวจัดการแพ็คเกจโหนดดาวน์โหลดโมดูลด่วนที่จำเป็นและติดตั้งตามนั้น

ลองใช้เฟรมเวิร์ก Express ที่ติดตั้งใหม่ของเราและสร้างแอปพลิเคชัน “Hello World” ที่เรียบง่าย

แอปพลิเคชันของเรากำลังจะสร้างโมดูลเซิร์ฟเวอร์อย่างง่ายซึ่งจะรับฟังบนพอร์ตหมายเลข 3000 ในตัวอย่างของเรา หากมีการร้องขอผ่านเบราว์เซอร์บนหมายเลขพอร์ตนี้ แอปพลิเคชันเซิร์ฟเวอร์จะส่งการตอบกลับ 'Hello' World' ไปยังไคลเอนต์ .

การติดตั้งและใช้งาน Express

var express=require('express');
var app=express();
app.get('/',function(req,res)
{
res.send('Hello World!');
});
var server=app.listen(3000,function() {});

คำอธิบายรหัส:

  1. ในโค้ดบรรทัดแรก เราใช้ฟังก์ชัน need เพื่อรวม "express module"
  2. ก่อนที่เราจะเริ่มใช้โมดูลด่วนได้ เราต้องสร้างอ็อบเจ็กต์ของมันเสียก่อน
  3. ที่นี่เรากำลังสร้างฟังก์ชันโทรกลับ ฟังก์ชั่นนี้จะถูกเรียกเมื่อใดก็ตามที่ใครก็ตามเรียกดูรูทของเว็บแอปพลิเคชันของเราซึ่งก็คือ http://localhost:3000 - ฟังก์ชั่นการโทรกลับจะใช้ในการส่งสตริง 'Hello World' ไปยังหน้าเว็บ
  4. ในฟังก์ชันการโทรกลับ เรากำลังส่งสตริง "Hello World" กลับไปยังไคลเอ็นต์ พารามิเตอร์ 'res' ใช้เพื่อส่งเนื้อหากลับไปยังหน้าเว็บ พารามิเตอร์ 'res' นี้เป็นสิ่งที่โมดูล 'คำขอ' จัดเตรียมไว้ให้เพื่อให้สามารถส่งเนื้อหากลับไปยังหน้าเว็บได้
  5. จากนั้นเราจะใช้ฟังก์ชัน Listen to เพื่อให้แอปพลิเคชันเซิร์ฟเวอร์ของเรารับฟังคำขอของไคลเอ็นต์บนพอร์ตหมายเลข 3000 คุณสามารถระบุพอร์ตที่มีอยู่ได้ที่นี่

หากดำเนินการคำสั่งสำเร็จ ผลลัพธ์ต่อไปนี้จะปรากฏขึ้นเมื่อคุณรันโค้ดในเบราว์เซอร์

Output:

Express.js

จากผลลัพธ์ที่ได้

  • คุณจะเห็นได้ชัดเจนว่าหากเราเรียกดู URL ของ localhost บนพอร์ต 3000 คุณจะเห็นสตริง 'Hello World' แสดงบนเพจ
  • เนื่องจากในโค้ดของเราเราได้กล่าวถึงโดยเฉพาะเพื่อให้เซิร์ฟเวอร์รับฟังบนพอร์ตหมายเลข 3000 เราจึงสามารถดูผลลัพธ์ได้เมื่อเรียกดู URL นี้

เส้นทางคืออะไร?

การกำหนดเส้นทางจะกำหนดวิธีที่แอปพลิเคชันตอบสนองต่อคำขอของไคลเอ็นต์ไปยังจุดสิ้นสุดเฉพาะ

ตัวอย่างเช่น ลูกค้าสามารถสร้างคำขอ GET, POST, PUT หรือ DELETE http สำหรับ URL ต่างๆ ดังที่แสดงด้านล่าง

http://localhost:3000/Books
http://localhost:3000/Students

ในตัวอย่างข้างต้น

  • หากมีการร้องขอ GET สำหรับ URL แรก การตอบกลับควรเป็นรายการหนังสือ
  • หากมีการร้องขอ GET สำหรับ URL ที่สอง การตอบกลับควรเป็นรายชื่อนักเรียน
  • ดังนั้นตาม URL ที่เข้าถึง ฟังก์ชันการทำงานที่แตกต่างกันบนเว็บเซิร์ฟเวอร์จะถูกเรียกใช้ และการตอบสนองจะถูกส่งไปยังไคลเอนต์ตามลำดับ นี่คือแนวคิดของการกำหนดเส้นทาง

แต่ละเส้นทางสามารถมีฟังก์ชันตัวจัดการตั้งแต่หนึ่งฟังก์ชันขึ้นไป ซึ่งจะดำเนินการเมื่อเส้นทางตรงกัน

ไวยากรณ์ทั่วไปสำหรับเส้นทางแสดงอยู่ด้านล่างนี้

app.METHOD(PATH, HANDLER)

โดยที่

1) แอพเป็นอินสแตนซ์ของโมดูลด่วน

2) METHOD เป็นวิธีการร้องขอ HTTP (GET, POST, PUT หรือ DELETE)

3) PATH เป็นเส้นทางบนเซิร์ฟเวอร์

4) HANDLER คือฟังก์ชันที่ดำเนินการเมื่อเส้นทางตรงกัน

ลองดูตัวอย่างวิธีที่เราสามารถใช้เส้นทางในแบบด่วนได้ ตัวอย่างของเราจะสร้าง 3 เส้นทางดังนี้

  1. เส้นทาง /Node ซึ่งจะแสดงสตริง “บทช่วยสอนบนโหนด” หากมีการเข้าถึงเส้นทางนี้
  2. เส้นทาง /Angular ซึ่งจะแสดงสตริง “Tutorial on Angular” หากมีการเข้าถึงเส้นทางนี้
  3. เส้นทางเริ่มต้น / ซึ่งจะแสดงสตริง “ยินดีต้อนรับสู่ Guru99 Tutorials”

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

เส้นทางใน Node.js

var express = require('express');
var app = express();
app.route('/Node').get(function(req,res)
{
    res.send("Tutorial on Node");
});
app.route('/Angular').get(function(req,res)
{
    res.send("Tutorial on Angular");
});
app.get('/',function(req,res){
    res.send('Welcome to Guru99 Tutorials');
}));

คำอธิบายรหัส:

  1. ที่นี่เรากำลังกำหนดเส้นทางถ้า URL http://localhost:3000/Node ถูกเลือกไว้ในเบราว์เซอร์ เรากำลังแนบฟังก์ชัน callback เข้ากับเส้นทางซึ่งจะถูกเรียกเมื่อเราเรียกดู Node URL ฟังก์ชันนี้มี 2 พารามิเตอร์
  • พารามิเตอร์หลักที่เราจะใช้คือพารามิเตอร์ 'res' ซึ่งสามารถใช้เพื่อส่งข้อมูลกลับไปยังไคลเอนต์ได้
  • พารามิเตอร์ 'req' มีข้อมูลเกี่ยวกับคำขอที่กำลังดำเนินการ บางครั้งอาจมีการส่งพารามิเตอร์เพิ่มเติมโดยเป็นส่วนหนึ่งของคำขอที่ถูกสร้างขึ้น และด้วยเหตุนี้พารามิเตอร์ 'req' จึงสามารถใช้เพื่อค้นหาพารามิเตอร์เพิ่มเติมที่ถูกส่งได้
  1. เรากำลังใช้ฟังก์ชัน send เพื่อส่งสตริง “Tutorial on Node” กลับไปยังไคลเอนต์หากเลือกเส้นทาง Node
  2. ที่นี่เรากำลังกำหนดเส้นทางถ้า URL http://localhost:3000/Angular ถูกเลือกไว้ในเบราว์เซอร์ เรากำลังแนบฟังก์ชันโทรกลับเข้ากับเส้นทางซึ่งจะถูกเรียกเมื่อเราเรียกดู URL เชิงมุม
  3. เรากำลังใช้ฟังก์ชัน send เพื่อส่งสตริง “Tutorial on Angular” กลับไปยังไคลเอนต์หากเลือกเส้นทาง Angular
  4. นี่คือเส้นทางเริ่มต้นซึ่งถูกเลือกเมื่อเรียกดูเส้นทางของแอปพลิเคชัน – http://localhost:3000- เมื่อเลือกเส้นทางเริ่มต้น ข้อความ "ยินดีต้อนรับสู่ Guru99 Tutorials" จะถูกส่งไปยังลูกค้า

หากดำเนินการคำสั่งสำเร็จ ผลลัพธ์ต่อไปนี้จะปรากฏขึ้นเมื่อคุณรันโค้ดในเบราว์เซอร์

Output:

เส้นทางใน Node.js

จากผลลัพธ์ที่ได้

  • คุณจะเห็นได้ชัดเจนแล้วว่าหากเราเรียกดู URL ของ localhost บนพอร์ต 3000 คุณจะเห็นสตริง 'Welcome to Guru99 Tutorials' แสดงอยู่บนเพจ
  • เนื่องจากในโค้ดของเรา เราได้กล่าวไว้ว่า URL เริ่มต้นของเราจะแสดงข้อความนี้

เส้นทางใน Node.js

จากผลลัพธ์ที่ได้

  • คุณจะเห็นได้ว่าหากเปลี่ยน URL เป็น /Node ระบบจะเลือกเส้นทาง Node ที่เกี่ยวข้อง และจะแสดงสตริง “Tutorial On Node”

เส้นทางใน Node.js

จากผลลัพธ์ที่ได้

  • คุณจะเห็นได้ว่าหากเปลี่ยน URL เป็น /Angular ระบบจะเลือกเส้นทาง Node ที่เกี่ยวข้องและจะแสดงสตริง “Tutorial On Angular”

ตัวอย่างเว็บเซิร์ฟเวอร์ที่ใช้ express.js

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

เมื่อสร้างแอปพลิเคชัน Node ที่รวดเร็วทันใจ วิธีที่ง่ายและรวดเร็วคือการใช้เทมเพลตสำหรับแอปพลิเคชัน มีเฟรมเวิร์กมากมายในตลาดสำหรับการสร้างเทมเพลต ในกรณีของเรา เราจะยกตัวอย่างกรอบงานหยกสำหรับการสร้างเทมเพลต

Jade จะได้รับการติดตั้งผ่านตัวจัดการแพ็กเกจ Node ซึ่งสามารถทำได้โดยดำเนินการตามบรรทัดต่อไปนี้ในบรรทัดคำสั่ง

npm ติดตั้งหยก

คำสั่งดังกล่าวร้องขอให้ตัวจัดการแพ็คเกจโหนดดาวน์โหลดโมดูลหยกที่จำเป็นและติดตั้งตามนั้น

หมายเหตุ: ในเวอร์ชันล่าสุดของ Node jade ได้เลิกใช้แล้ว ให้ใช้ปั๊กแทน

ลองใช้เฟรมเวิร์ก Jade ที่เพิ่งติดตั้งใหม่และสร้างเทมเพลตพื้นฐาน

ขั้นตอน 1) ขั้นตอนแรกคือการสร้างเทมเพลตหยก สร้างไฟล์ชื่อ index.jade และใส่โค้ดด้านล่าง ตรวจสอบให้แน่ใจว่าได้สร้างไฟล์ในโฟลเดอร์ “views”

ตัวอย่างเว็บเซิร์ฟเวอร์ที่ใช้ Express.js

  1. ที่นี่เรากำลังระบุว่าชื่อของเพจจะเปลี่ยนเป็นค่าใดก็ตามที่ถูกส่งเมื่อมีการเรียกใช้เทมเพลตนี้
  2. นอกจากนี้เรายังระบุว่าข้อความในแท็กส่วนหัวจะถูกแทนที่ด้วยข้อความใดก็ตามที่ส่งผ่านในเทมเพลต Jade

ตัวอย่างเว็บเซิร์ฟเวอร์ที่ใช้ Express.js

var express=require('express');
var app=express();
app.set('view engine','jade');
app.get('/',function(req,res)
{
res.render('index',
{title:'Guru99',message:'Welcome'})
});
var server=app.listen(3000,function() {});

คำอธิบายรหัส:

  1. สิ่งแรกที่ต้องระบุในแอปพลิเคชันคือ “view engine” ที่จะใช้ในการแสดงเทมเพลต เนื่องจากเราจะใช้หยกเพื่อแสดงเทมเพลตของเรา เราจึงระบุสิ่งนี้ตามนั้น
  2. ฟังก์ชั่นเรนเดอร์ใช้ในการเรนเดอร์หน้าเว็บ ในตัวอย่างของเรา เรากำลังแสดงเทมเพลต (index.jade) ที่สร้างขึ้นก่อนหน้านี้
  3. เรากำลังส่งค่าของ "Guru99" และ "ยินดีต้อนรับ" ไปยังพารามิเตอร์ "ชื่อ" และ "ข้อความ" ตามลำดับ ค่าเหล่านี้จะถูกแทนที่ด้วยพารามิเตอร์ 'ชื่อ' และ 'ข้อความ' ที่ประกาศในเทมเพลต index.jade

หากดำเนินการคำสั่งสำเร็จ ผลลัพธ์ต่อไปนี้จะปรากฏขึ้นเมื่อคุณรันโค้ดในเบราว์เซอร์

Output:

ตัวอย่างเว็บเซิร์ฟเวอร์ที่ใช้ Express.js

จากผลลัพธ์ที่ได้

  • เราจะเห็นว่าชื่อของเพจถูกตั้งเป็น “Guru99” และส่วนหัวของเพจถูกตั้งเป็น “ยินดีต้อนรับ”
  • นี่เป็นเพราะเทมเพลต Jade ที่ถูกเรียกใช้ในแอปพลิเคชันโหนด js ของเรา

สรุป

  • Express Framework เป็นเฟรมเวิร์กทั่วไปที่ใช้สำหรับการพัฒนาแอปพลิเคชัน Node js เฟรมเวิร์ก Express สร้างขึ้นบนเฟรมเวิร์ก node.js และช่วยในการพัฒนาแอปพลิเคชันบนเซิร์ฟเวอร์แบบติดตามอย่างรวดเร็ว
  • เส้นทางถูกใช้เพื่อเปลี่ยนเส้นทางผู้ใช้ไปยังส่วนต่างๆ ของเว็บแอปพลิเคชันตามคำขอ การตอบสนองสำหรับแต่ละเส้นทางสามารถเปลี่ยนแปลงได้ขึ้นอยู่กับสิ่งที่ต้องแสดงให้ผู้ใช้เห็น
  • เทมเพลตสามารถใช้เพื่อแทรกเนื้อหาได้อย่างมีประสิทธิภาพ Jade เป็นหนึ่งในเอ็นจิ้นการสร้างเทมเพลตยอดนิยมที่ใช้ในแอปพลิเคชัน Node.js