ต่อจากบทความที่นี้แล้วเราได้แนะนำการใช้สร้าง HTTP กันไปแล้วโดยใช้ HTTP Server ที่มีอยู่บนตัว Node.jsซึ่งในบทความนี่จะมาแนะนำการใช้งาน feature กันเพิ่มเติมจากตัว http module ว่ามีการใช้งานกันอย่างไรบ้าง 

 

มาดูตัวอย่างของ code ที่เราได้ทำการสร้างไว้แล้วจากบทความที่แล้วกัน โดยจะโฟกัสไปที่ ตัวแปรที่ชื่อว่า const server กันก่อน โดยที่ตัวแปร server จะเป็นการเรียกใช้งาน การสร้าง http server โดยประกอบไปด้วย req,res  req เป็นการรับค่ามาจากผู้ใช้งานส่วน res เป็นส่งค่ากลับไป และภายใน ประกอบไปด้วย res.write ซึ่งเป็นการส่งข้อความไปแสดงที่หน้า URL ที่ถูกเรียกใช้ อย่างที่ได้บอกไปว่า req เป็นการรับค่ามาจากผู้ใช้งานฉนั้นแล้วเราสามารถจะดูได้ว่าผู้ใช้งานที่ใช้งาน URL นั้นๆอยู่ส่งค่าหรืออะไรมาบ้าง โดยใช้คำสั่งว่า console.log(req)

 

const http = require('http')
const server  = http.createServer((req,res) => {
     console.log(req)
}

server.listen(3000)

 

 

ถ้าหากเราไปที่ browser แล้วพิมพ์ว่า localhost:3000 จะเป็นการ request จาก client มายัง server พร้อมด้วยข้อมูลต่างๆที่ client ทำการ request เข้ามาตามภาพรูปภาพที่ช่อง termainal จะมีรายละเอียดต่างๆที่ client ส่งเข้ามายัง http server 

 

 

detail_request
detail_request_client

 

 

มาดู feature เพิ่มเติมกันมากกว่านี้ที่ http.server เราสามารถใช้คำสั่ง if, else และ html แทรกลงเข้าไปได้เพื่อทดสอบตรวจหรือตรวจข้อมูล หรือเพื่อทดสอบการทำงานของ code ว่าถูกต้องหรือไม่โดยมีรูปแบบดังนี้  

 

 

const http = require('http')
const server = http.createServer((req,res) => {
    if(req.url === '/'){
         res.end('Welcome to our home page')
    }
     else if(req.url === '/about'){
         res.end('Here is our short history')
    }else{
         res.end(`<h1>Oops!</h1>
         <p>We can't seem to find the page</p>
         <a href = "/">back home</a>
        `)
     }
})
server.listen(3000)


        

 

 

โดยจากรูปภาพตามที่ได้แปะมาแล้ว ได้มีการแทรก if เข้ามาเพื่อ ตรวจสอบว่า client นั้นมีการเรียกใช้งาน url ที่ถูกต้องไหม นั้นก็คือ '/' ซึ่งเป็น homepage ถ้าเรียกใช้งาน url ได้ถูกจะส่งข้อมูลกลับไปว่า Welcome to our home page และถ้าหากเรียกใช้งาน url /about ก็จะส่งข้อความตอบกลับไปว่า Here is our short history แต่ถ้าหากเรียกใช้งานที่อยู่จาก url ที่ได้กำหนดก็จะส่งข้อความกลับไปว่า หา page นั้นๆที่เรียกใช้งานไม่เจอ พร้อมกับแทรก แท็ก html เข้าไปและ link กลับไปที่หน้า home page ด้วย

 

 

url_error
url_error_request

 

 

ลองทดสอบโดยเข้าไปที่ browser แล้วพิมพ์คำว่า localhost:3000/error 

ซึ่ง /error เป็น url ที่ไม่ได้อยู่ในเงื่อนไขที่กำหนด จะส่งข้อความตอบกลับมาดังภาพ 

 

สรุป ในการใช้งาน HTTP Server เมื่อผู้ใช้งานมีการเรียกใช้งานเข้ามา เราสามารถที่จะเรียกดู req ได้ว่า req ได้ส่งข้อมูลอะไรเข้าไปที่ server ของเราและ เราสามารถจะส่งข้อมูลออกกลับไปได้ด้วย res พร้อมกับข้อมูลที่เราได้ทำการกำหนด นอกจากนี้เราสามารถที่จะแทรก Conditionsต่างๆ ไม่ว่าจะ console.log, if,else และ html เข้าไปใช้งานที่ http server ได้ด้วยเพื่อเป็นการทดสอบการทำงาน 

 

อ้างอิง

"Node.js Introduction - (w3schools)".[ออนไลน์].สามารถศึกษาเพิ่มเติมได้ที่ 

https://www.w3schools.com/nodejs/nodejs_intro.asp

"Node.js Callback Concept - (geeksforgeeks)".[ออนไลน์].สามารถศึกษาเพิ่มเติมได้ที่

https://www.geeksforgeeks.org/node-js-callback-concept/

กระทู้ล่าสุดจากเว็บบอร์ด
หัวข้อกระทู้
ตอบ
เปิดดู
ล่าสุด
spa near me
โดย JackStack ศ 19 เม.ย. 2024 1:54 pm บอร์ด Programming - PHP
0
2
ศ 19 เม.ย. 2024 1:54 pm โดย JackStack View Topic spa near me
แจ้งปัญหาโพสบทความลงในเว็บบอร์ดส่วนตัวไม่ได้
โดย internTk21 ศ 19 เม.ย. 2024 11:56 am บอร์ด MindPHP News & Feedback
1
2
ศ 19 เม.ย. 2024 12:15 pm โดย internTk21 View Topic แจ้งปัญหาโพสบทความลงในเว็บบอร์ดส่วนตัวไม่ได้
สอบถาม Google Structure ที่เหมาะกับคอร์สเรียนควรใช้แบบไหนดีค่ะ
โดย eange08 ศ 19 เม.ย. 2024 9:56 am บอร์ด Programming - PHP
1
7
ศ 19 เม.ย. 2024 10:28 am โดย mindphp View Topic สอบถาม Google Structure ที่เหมาะกับคอร์สเรียนควรใช้แบบไหนดีค่ะ
คำสั่งรวมไฟล์ และ บีบอัดในคำสั่งเดียว tar, zip
โดย mindphp พ 17 เม.ย. 2024 7:42 pm บอร์ด Linux - Web Server
0
36
พ 17 เม.ย. 2024 7:42 pm โดย mindphp View Topic คำสั่งรวมไฟล์ และ บีบอัดในคำสั่งเดียว  tar, zip
เช็คขนาดพื้นที่ฐานข้อมูล แต่ละก้อน แต่ละฐานข้อมูลว่าใช้พื้นที่ไปเท่าไหร่ ด้วย Comamnd Line
โดย mindphp จ 15 เม.ย. 2024 11:10 pm บอร์ด PostgreSQL
1
159
จ 15 เม.ย. 2024 11:14 pm โดย mindphp View Topic เช็คขนาดพื้นที่ฐานข้อมูล แต่ละก้อน แต่ละฐานข้อมูลว่าใช้พื้นที่ไปเท่าไหร่ ด้วย Comamnd Line
การติดตั้ง WSL เพื่อใช้งาน Linux Terminal บน Windows
โดย tsukasaz ศ 12 เม.ย. 2024 2:25 pm บอร์ด Share Knowledge
0
184
ศ 12 เม.ย. 2024 2:25 pm โดย tsukasaz View Topic การติดตั้ง WSL เพื่อใช้งาน Linux Terminal บน Windows
Super Сasual Dating - Real Women
โดย heroxbay ศ 12 เม.ย. 2024 8:55 am บอร์ด Microsoft Office Knowledge & line & Etc
0
136
ศ 12 เม.ย. 2024 8:55 am โดย heroxbay View Topic Super Сasual Dating - Real Women
Unsurpassed Сasual Dating - True Females
โดย pongsu1968 ศ 12 เม.ย. 2024 5:47 am บอร์ด Microsoft Office Knowledge & line & Etc
0
157
ศ 12 เม.ย. 2024 5:47 am โดย pongsu1968 View Topic Unsurpassed Сasual Dating - True Females