จากบทความที่ผ่านเราได้แนะนำการใช้งาน 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 ดังรูปภาพ

 

 

runServer
runServer

 

 

จากนั้นไปที่ browser เพื่อดูว่า server ที่เราได้สั่ง run ขึ้นมา จากภาพเห็นได้ว่ามีการส่ง response ออกมานั้นก็คือ Hello world นั้นเอง

 

 

ServerRunning
ServerRunningOnPort

 

 

สรุป 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

 

กระทู้ล่าสุดจากเว็บบอร์ด
หัวข้อกระทู้
ตอบ
เปิดดู
ล่าสุด
การเขียนโปรแกรมเชิงวัตถุด้วยภาษา python
โดย wightfall อ 23 เม.ย. 2024 4:13 pm บอร์ด Python Knowledge
0
12
อ 23 เม.ย. 2024 4:13 pm โดย wightfall View Topic การเขียนโปรแกรมเชิงวัตถุด้วยภาษา python
แนะนำการเดินทางและสถานที่ท่องเที่ยวในจังหวัดตรังและการเดินทางไปกรุงเทพ
โดย wightfall จ 22 เม.ย. 2024 3:41 pm บอร์ด พูดคุยเรื่องทั่วไป จับฉ่าย
0
31
จ 22 เม.ย. 2024 3:41 pm โดย wightfall View Topic แนะนำการเดินทางและสถานที่ท่องเที่ยวในจังหวัดตรังและการเดินทางไปกรุงเทพ
ติดตั้ง ESXi ใหม่ จำเป็นต้อง Format Harddisk ก่อนติดตั้งไหมครับ
โดย จิ๊กโก๋ ส 20 เม.ย. 2024 2:29 pm บอร์ด ถาม - ตอบ คอมพิวเตอร์
3
149
อ 23 เม.ย. 2024 2:24 pm โดย mindphp View Topic ติดตั้ง ESXi ใหม่ จำเป็นต้อง Format Harddisk ก่อนติดตั้งไหมครับ
แจ้งปัญหาโพสบทความลงในเว็บบอร์ดส่วนตัวไม่ได้
โดย internTk21 ศ 19 เม.ย. 2024 11:56 am บอร์ด MindPHP News & Feedback
1
51
ศ 19 เม.ย. 2024 12:15 pm โดย internTk21 View Topic แจ้งปัญหาโพสบทความลงในเว็บบอร์ดส่วนตัวไม่ได้
สอบถาม Google Structure ที่เหมาะกับคอร์สเรียนควรใช้แบบไหนดีค่ะ
โดย eange08 ศ 19 เม.ย. 2024 9:56 am บอร์ด Programming - PHP
1
89
ศ 19 เม.ย. 2024 10:28 am โดย mindphp View Topic สอบถาม Google Structure ที่เหมาะกับคอร์สเรียนควรใช้แบบไหนดีค่ะ
คำสั่งรวมไฟล์ และ บีบอัดในคำสั่งเดียว tar, zip
โดย mindphp พ 17 เม.ย. 2024 7:42 pm บอร์ด Linux - Web Server
0
126
พ 17 เม.ย. 2024 7:42 pm โดย mindphp View Topic คำสั่งรวมไฟล์ และ บีบอัดในคำสั่งเดียว  tar, zip
เช็คขนาดพื้นที่ฐานข้อมูล แต่ละก้อน แต่ละฐานข้อมูลว่าใช้พื้นที่ไปเท่าไหร่ ด้วย Comamnd Line
โดย mindphp จ 15 เม.ย. 2024 11:10 pm บอร์ด PostgreSQL
1
301
จ 15 เม.ย. 2024 11:14 pm โดย mindphp View Topic เช็คขนาดพื้นที่ฐานข้อมูล แต่ละก้อน แต่ละฐานข้อมูลว่าใช้พื้นที่ไปเท่าไหร่ ด้วย Comamnd Line
การติดตั้ง WSL เพื่อใช้งาน Linux Terminal บน Windows
โดย tsukasaz ศ 12 เม.ย. 2024 2:25 pm บอร์ด Share Knowledge
0
319
ศ 12 เม.ย. 2024 2:25 pm โดย tsukasaz View Topic การติดตั้ง WSL เพื่อใช้งาน Linux Terminal บน Windows