สอน Node.js ตอนที่ 8 HTTP + URL + FS สร้าง Web Server แบบ Static Web Page หลายหน้า

สอน Node.js ตอนที่ 8 HTTP + URL + FS สร้าง Web Server แบบ Static Web Page หลายหน้า

ตอนที่แล้ว เราได้ทดลองสร้าง Web Server แบบ Static Web Page แบบมีหน้าเดียวกันไปแล้ว ตอนนี้มาลองสร้างแบบมีหลายๆ กัน

Feb 11, 2018

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

ตอนที่แล้ว เราได้ทดลองสร้าง Web Server แบบ Static Web Page แบบมีหน้าเดียวกันไปแล้ว ตอนนี้มาลองสร้างแบบมีหลายๆ กัน การสร้าง Web Server ให้สามารถส่งผลกลับไปให้ผู้ใช้แบบมีหลายๆ หน้านั่น จะต้องรู้ว่าผู้ใช้เรียกเข้ามาผ่าน URL เป็นอะไร เพื่อที่ Web Server จะได้ส่งหน้าที่ต้องการกลับไปได้ถูกต้อง ตัวอย่างดังภาพด้านล่าง ที่มีหน้า home.html และ about.html ที่เข้าผ่าน URL ที่ต่างกัน 

 

 

Node.js จึงมี Modules สำหรับจัดการกับ URL ที่ถูกเรียกเข้ามาชื่อว่า url วิธีการใช้งาน ให้นำเข้า Module - url เข้ามาใช้ด้วยคำสั่ง require เสียก่อน ต่อมาอ่าน pathname จาก URL ที่ได้เพื่ออ่านไฟล์ให้ตรงกับ URL ที่เรียกเข้ามา 


ถ้าเรียกเข้ามาเป็น http://localhost:8081/home.html  ให้อ่านไฟล์ home.html แล้วส่งกลับไป

เช่าเดียวกันถ้าเรียก http://localhost:8081/about.html  ให้อ่านไฟล์ about.html 

var http = require('http');
var url = require('url'); // นำเข้า url มาใช้งาน
var fs = require('fs');

http.createServer(function (req, res) {
   var q = url.parse(req.url, true); // ดึงข้อมูล URL มาจาก req.url
   var filename = "." + q.pathname;  // pathname จะเก็บค่าที่อยู่หลัง http://localhost:8081/
   fs.readFile(filename, function (err, data) { // นำค่า pathname ที่ได้มาอ่านไฟล์
       if (err) { // อ่านไม่ได้ลงกลับเป็น 404 Not Found
           res.writeHead(404, { 'Content-Type': 'text/html' });
           return res.end("404 Not Found");
       }
       res.writeHead(200, { 'Content-Type': 'text/html' });
       res.write(data); // ส่งข้อมูลทีอ่านได้กลับไปให้ผู้ใช้
       return res.end();
   });
}).listen(8081);

console.log("Server running at http://127.0.0.1:8081/");

 

เท่านี้เราก็สามารถสร้าง Web Server แบบ Static Web Page ที่มีหลายๆ หน้ากันได้แล้วครับ แต่จะพบว่าการเขียนสร้าง Web Server เองทั้งหมดมีความซับซ้อน จึงมีนักพัฒนาสร้าง Web Framework สำหรับ Node.js เพื่อให้เขียนจัดการ Web Server ง่ายขึ้น ชื่อว่า ExpressJS ซึ่งเป็นที่นิยมมาก ใครสนใจกดดูได้ในตอนต่อไปได้เลย

 


แบ่งปัน

ชอบ +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
โดยผู้เขียนที่มีความเชี่ยวชาญเฉพาะ ให้บริการพื้นที่สำหรับนักเขียนที่ต้องการแบ่งปันความรู้ พร้อมให้คำปรึกษาแก่ผู้ที่สนใจ โดยไม่เสียค่าใช้จ่าย