สร้างเว็บเซิร์ฟเวอร์ HTTP ใน Node.js: บทช่วยสอนพร้อมตัวอย่างโค้ด
กรอบงาน Node.js ส่วนใหญ่ใช้เพื่อสร้างแอปพลิเคชันบนเซิร์ฟเวอร์ สามารถใช้เฟรมเวิร์กเพื่อสร้างเว็บเซิร์ฟเวอร์ที่สามารถให้บริการเนื้อหาแก่ผู้ใช้ได้อย่างง่ายดาย
มีโมดูลที่หลากหลาย เช่น โมดูล “http” และ “คำขอ” ซึ่งช่วยในการประมวลผลคำขอที่เกี่ยวข้องกับเซิร์ฟเวอร์ในพื้นที่เว็บเซิร์ฟเวอร์ เราจะมาดูว่าเราสามารถสร้างแอปพลิเคชันเว็บเซิร์ฟเวอร์พื้นฐานได้อย่างไร โหนด js.
โหนดเป็นเว็บเซิร์ฟเวอร์โดยใช้ HTTP
มาดูตัวอย่างวิธีสร้างและรันแอปพลิเคชัน Node js แรกของเรา
แอปพลิเคชันของเรากำลังจะสร้างโมดูลเซิร์ฟเวอร์อย่างง่ายซึ่งจะรับฟังบนพอร์ตหมายเลข 7000 หากมีการร้องขอผ่านเบราว์เซอร์บนพอร์ตนี้ แอปพลิเคชันเซิร์ฟเวอร์จะส่งการตอบกลับ 'Hello World' ไปยังไคลเอนต์
คำอธิบายรหัส
- ฟังก์ชันพื้นฐานของฟังก์ชัน need คืออ่านค่า a Javaต้นฉบับ ดำเนินการไฟล์ จากนั้นดำเนินการส่งคืนอ็อบเจ็กต์เอ็กซ์พอร์ต ดังนั้นในกรณีของเรา เนื่องจากเราต้องการใช้ฟังก์ชันการทำงานของโมดูล http เราจึงใช้ฟังก์ชัน need เพื่อรับฟังก์ชันที่ต้องการจากโมดูล http เพื่อให้สามารถใช้ในแอปพลิเคชันของเราได้
- ในโค้ดบรรทัดนี้ เรากำลังสร้างแอปพลิเคชันเซิร์ฟเวอร์ซึ่งใช้ฟังก์ชันง่ายๆ ฟังก์ชันนี้จะถูกเรียกเมื่อใดก็ตามที่มีการร้องขอไปยังแอปพลิเคชันเซิร์ฟเวอร์ของเรา
- เมื่อได้รับคำขอ เรากำลังบอกว่าให้ส่งการตอบกลับด้วยประเภทส่วนหัวเป็น '200' หมายเลขนี้เป็นการตอบกลับปกติซึ่งจะถูกส่งในส่วนหัว http เมื่อมีการส่งการตอบกลับที่สำเร็จไปยังไคลเอนต์
- ในการตอบกลับ เรากำลังส่งสตริง 'Hello World'
- จากนั้นเราจะใช้ฟังก์ชัน server.listen เพื่อให้แอปพลิเคชันเซิร์ฟเวอร์ของเรารับฟังคำขอของลูกค้าบนพอร์ตหมายเลข 7000 คุณสามารถระบุพอร์ตใดๆ ที่มีอยู่ได้ที่นี่
หากดำเนินการคำสั่งสำเร็จ ผลลัพธ์ต่อไปนี้จะปรากฏขึ้นเมื่อคุณรันโค้ดในเบราว์เซอร์
เอาท์พุต
จากผลลัพธ์ที่ได้
- คุณจะเห็นได้ชัดว่าถ้าเราเรียกดู URL ของ localhost บนพอร์ต 7000 คุณจะเห็นสตริง 'Hello World' แสดงอยู่ในเพจ
- เนื่องจากในโค้ดของเราเราได้กล่าวถึงโดยเฉพาะเพื่อให้เซิร์ฟเวอร์รับฟังบนพอร์ตหมายเลข 7000 เราจึงสามารถดูผลลัพธ์ได้เมื่อเรียกดู URL นี้
นี่คือรหัสสำหรับการอ้างอิงของคุณ
var http=require('http') var server=http.createServer((function(request,response) { response.writeHead(200, {"Content-Type" : "text/plain"}); response.end("Hello World\n"); })); server.listen(7000);
การจัดการคำขอ GET ใน Node.js
การสร้างคำขอ GET เพื่อรับข้อมูลจากไซต์อื่นนั้นค่อนข้างง่ายใน Node.js หากต้องการสร้างคำขอ Get ในโหนด เราต้องติดตั้งโมดูลคำขอก่อน ซึ่งสามารถทำได้โดยดำเนินการตามบรรทัดต่อไปนี้ในบรรทัดคำสั่ง
คำขอติดตั้ง npm
คำสั่งข้างต้นร้องขอให้ตัวจัดการแพ็คเกจโหนดดาวน์โหลดโมดูลคำขอที่จำเป็นและติดตั้งตามนั้น
เมื่อติดตั้งโมดูล npm ของคุณสำเร็จแล้ว บรรทัดคำสั่งจะแสดงชื่อโมดูลและเวอร์ชันที่ติดตั้ง: - -
ในภาพรวมด้านบน คุณจะเห็นว่าดาวน์โหลดและติดตั้งโมดูล 'คำขอ' พร้อมด้วยหมายเลขเวอร์ชัน 2.67.0 แล้ว
ทีนี้มาดูโค้ดที่สามารถใช้คำสั่ง 'request' นี้ได้
คำอธิบายรหัส
- เรากำลังใช้โมดูล 'คำขอ' ซึ่งได้รับการติดตั้งในขั้นตอนสุดท้าย โมดูลนี้มีฟังก์ชันที่จำเป็นซึ่งสามารถใช้เพื่อส่งคำขอ GET ไปยังเว็บไซต์ได้
- เรากำลังสร้างคำขอ GET ไปยัง www.google.com และเรียกใช้ฟังก์ชันเมื่อได้รับการตอบสนอง เมื่อได้รับการตอบสนอง พารามิเตอร์ (ข้อผิดพลาด การตอบสนอง และเนื้อหา) จะมีค่าดังต่อไปนี้
- ข้อผิดพลาด – ในกรณีที่ได้รับข้อผิดพลาดเมื่อใช้คำขอ GET จะถูกบันทึกไว้ที่นี่
- การตอบกลับ- การตอบกลับจะมีส่วนหัว http ซึ่งจะถูกส่งกลับไปในการตอบกลับ
- เนื้อความ- เนื้อความจะมีเนื้อหาทั้งหมดของการตอบกลับที่ส่งโดย Google
- ในที่นี้ เราเพียงเขียนเนื้อหาที่ได้รับในพารามิเตอร์ body ลงในไฟล์ console.log โดยพื้นฐานแล้ว ไม่ว่าเราจะได้อะไรจากการไป www.google.com จะถูกเขียนไปที่ console.log
นี่คือรหัสสำหรับการอ้างอิงของคุณ
var request = require("request"); request("http://www.google.com",function(error,response,body) { console.log(body); });
สรุป
- กรอบงาน Node.js สามารถใช้ในการพัฒนาเว็บเซิร์ฟเวอร์โดยใช้โมดูล 'http' แอปพลิเคชันสามารถสร้างให้ฟังบนพอร์ตเฉพาะและส่งการตอบกลับไปยังไคลเอนต์ทุกครั้งที่มีการร้องขอไปยังแอปพลิเคชัน
- โมดูล 'คำขอ' สามารถใช้เพื่อรับข้อมูลจากเว็บไซต์ ข้อมูลจะประกอบด้วยเนื้อหาทั้งหมดของหน้าเว็บที่ร้องขอจากเว็บไซต์ที่เกี่ยวข้อง