Node JS กับ Global Objects

รูปภาพ cover

Node JS กับ Global Objects
.
เริ่มต้นกันที่ ความเป็นระดับโลก หรือความเป็น Global ที่สามารถเข้าถึงได้หมด ใช้งานได้ทุกคน ทุกที่
.
Node เค้าเตรียม objects ต่างๆเอาไว้ให้เราใช้งานมากมายเลยครับ แต่เพจเราเป็นเพจเกี่ยวกับการทำเว็บไซต์ งั้นเราก็จะมุ่งเน้นไปที่ เว็บไซต์เป็นหลักเนอะ
.
จริงๆแล้ว เราจะทำงานกับ Node ด้วย Global Object ซะเยอะ ซึ่งจริงๆแล้วมันค่อนข้างซับซ้อนอยู่เหมือนกันนะ
.
มองง่ายๆน่าจะเป็นประมาณว่า Node JS ทำงานแบบเป็น Module ซึ่งปรกติก็คือ file ต่างๆก็เป็น Module นั้นเอง
.
การเข้าถึงค่าตัวแปรในแต่ละ file จึงกลายเป็นสิ่งที่ทำให้เราสามารถทำงานได้สะดวกขึ้น แต่จาก file หนึ่งหรือจาก Module หนึ่ง ก็จะยังไม่สามารถเข้าได้ จากที่อื่นๆ
.
แต่ในระดับ Global นั้นสามารถเข้าถึงได้ อะไรบ้างที่เป็น Global ก็เช่น
.
console.log() อันนี้เห็นกันบ่อย จนเคยชิน ใช้งานเป็นกันทุกคน เราลองประกาศค่าตัวแปรกันดู ถ้าอยู่ในระดับ file ก็ใช้ var ธรรมดา
.
var user = "teerapuch";
console.log(user);
.
แบบนี้สามารถทำงานได้ เราสามารถเรียก console.log ได้เลยทันที ไม่ว่าจะจากที่ไหน
.
แต่ถ้าเรียก user ที่ไฟล์อื่นๆหรือ module อื่นๆ จะไม่สามารถเรียกได้ หากจำเป็นจริงๆ ที่ต้องประกาศค่าเป็นตัวแปรในรูปแบบของ Global Object 
.
เราจะทำได้โดยการทำแบบนี้
.
global.user = "Teerapuch";
.
แบบนี้ เราจะสามารถเรียก user จากที่ไหนก็ได้ แต่ถ้าไม่มี global นำหน้าก็จะกลายเป็น user is not defined ไปแทน
.
อันที่จริงก็มีอยู่เยอะหลากหลายตัว ที่เป็น Global Objects เช่น __dirname อันนี้ถ้าเราเรียกออกมามันก็จะบอกค่า Directory ที่เรากำลังทำงานอยู่ 
.
หรือจะเป็น __filename อันนี้ก็จะคล้ายๆกัน แต่จะระบุออกมาเป็นชื่อของ file นั้นๆไปเลย
.
แล้วยังมี setInterval สำหรับตั้งค่าเวลาในการ Run งานอีกที่อยู่คู่กันกับ setTimeout หรือไม่ก็กลุ่ม clearInterval แบบนี้ก็อยู่ในข่ายของ Global เหมือนกัน
.
น่าจะพอเข้าใจเรื่องของการทำงานแบบ global กันไปบ้างแล้วนะครับ เดี๋ยวครั้งหน้าเรามาดูกันเรื่องของ การทำงานของ function กันบ้าง 
.
#NodeJS