จากบทความที่ผ่านเราได้แนะนำการใช้งาน Module การ require กันไปบ้างแล้วซึ่งต้องมาเราจะมาเขียนโปรแกรม server กัน โดยใช้งาน http server ซึ่งเป็น module ที่ติดตั้งมาพร้อมกับ Node.Js อยู่แล้วไม่ต้องติดตั้งกันเพิ่มเติม โดย HTTP ย่อมาจาก Hyper Text Transfer Protocol เป็นมาตรญานการสื่อสารในระบบเครือข่ายประเภทหนึ่ง ที่ใช้สำหรับการแลกเปลี่ยนข้อมูลระหว่าง server และ client ซึ่งเป็นหลักการพื้นฐานทำความเข้าใจก่อนที่เราจะไปเริ่มเขียน Node.js กัน
ก่อนจะไปรู้จักกับ http module เรามาทำความรู้กันกับ callback function กันก่อนโดย callback function เป็น function ที่ถูกเรียกใช้งานเป็น parameter ของฟังก์ชั่นอื่นอย่างตัวอย่างเช่นดังรูปภาพ จะเห็นได้ว่า function ของ hello นั้นถูกเรียกใช้งานโดยฟังก์ชั่น success ซึ่งก็คือ function hello เป็น callback function นั้นเอง โดยเมื่อเราใช้งาน callback function นั้นจะสังเกตุเห็นว่า callback function จะถูกเรียกใช้งานในภายหลังตามชื่อเลย ซึ่งมีประโยชน์อย่างมากเพราะเมื่อเราต้องการที่สร้าง function และต้องการส่วนที่เรียกใช้งานสามารถกำหนดการทำงานบางอย่างเองได้ โดยส่วนนั้นก็คือการ callback function
function hello(){
console.log('hello')
}
function success(cb){
console.log('success')
cb()
}
success(hello)
อย่างที่ได้เกริ่นนำไปที่หัวข้อแล้วว่าบทความนี่จะเป็นการใช้งาน HTTP โดยใช้ node.Js ซึ่งมีรูปแบบดังนี้
const http = require('http')
const server = http.createServer((req,res) => {
res.write('Hello World :')
res.end()
}
server.listen(3000)
โดยในรูปภาพจะประกอบไปด้วย code 7 บรรทัดด้วยกัน
บรรทัดแรกคือ การเรียกใช้งาน module http โดยประกาศตัวแปรว่า http และต่อมานำ module http ที่ทำการ require มาสร้าง server ซึ่งก็คือ http.createServer
จากนั้นภายใน callback function มีการส่ง response ออกไปก็คือ Hello แล้วทำการหยุดส่ง response ด้วย res.end() และในบรรทัดสุดท้ายเป็นการประกาศ run server ที่ได้สร้างขึ้น
โดยใช้คำสั่ง server.listen(3000)
และเมื่อทำการเขียน code เสร็จแล้วให้ทำการ run server ขึ้นมาโดยที่ช่องของ terminal ให้พิมพ์ว่า node app.js ดังรูปภาพ
จากนั้นไปที่ browser เพื่อดูว่า server ที่เราได้สั่ง run ขึ้นมา จากภาพเห็นได้ว่ามีการส่ง response ออกมานั้นก็คือ Hello world นั้นเอง
สรุป http module เป็น module ที่มาพร้อมกับ Node.js ซึ่งเราสามารถเรียกใช้งานได้ทันทีไม่จำเป็นที่จะต้องติดตั้ง package เพิ่มเติมและก่อนจะใช้งาน express.js เพื่อให้เข้าใจพื้นฐานการทำงานของ server เราสามารถใช้ http module เพื่อทำการศึกษาความเข้าใจการส่งข้อมูล การรับข้อมูล ได้จาก http module ซึ่งจะเป็นพื้นฐานที่จะนำไปต่อยอดได้ ต่อไปในการใช้งาน node.Js
อ้างอิง
"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/#:~:text=js%20Callback%20Concept,-Difficulty%20Level%20%3A%20Medium&text=A%20callback%20is%20a%20function,asynchronous%20equivalent%20for%20a%20function.
"Node.js HTTP Module - (w3schools)".[ออนไลน์].สามารถศึกษาเพิ่มเติมได้ที่
https://www.w3schools.com/nodejs/nodejs_http.asp