ต่อจากบทความที่นี้แล้วเราได้แนะนำการใช้สร้าง 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
มาดู 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 ด้วย
ลองทดสอบโดยเข้าไปที่ 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/