Node.js Standard Modules

15 April 2021

ในบทนี้ คุณจะได้ทำความรู้จักกับโมดูลหรือไลบรารีมาตรฐานบน Node.js ซึ่งโมดูลเหล่านี่เป็น API ระดับต่ำสำหรับอำนวยความสะดวกในการติดต่อกับ Input/Output และเข้าถึงทรัพยากรและข้อมูลบนระบบปฏิบัติการและอื่นๆ นี่เป็นเนื้อหาในบทนี้

  • Module มาตรฐานบน Node.js
  • fs module
  • path module
  • os module
  • events module
  • http module

Module มาตรฐานบน Node.js

Node.js มีโมดูลมาตรฐานสำหรับใช้เพื่อติดต่อกับ Interfaces ต่างๆ ของระบบปฏิบัติการได้ โมดูลเหล่านี้เฉพาะเจาะจงสำหรับแต่ละงานที่คุณต้องการทำบน Node.js นั่นหมายความว่าไม่ใช่ทุกโปรแกรมที่ต้องการใช้มัน ยกตัวอย่างเช่น หากคุณเขียนโปรแกรมเพื่ออ่านและเขียนไฟล์ คุณอาจต้องการใช้โมดูล fs ในขณะที่เมื่อต้องการสร้างเว็บเซิร์ฟเวอร์ คุณจะต้องใช้โมดูล http แทน เป็นต้น

ในบทเรียนนี้ เราจะไม่ได้พูดถึงการใช้งานแบบละเอียดของโมดูล แต่จะอธิบายว่าแต่ละโมดูลคืออะไร มีวัตถุประสงค์เพื่ออะไร หรือกล่าวอีกนัยหนึ่ง เป็นการแนะนำให้คุณรู้จักกับมันเอาไว้เพื่อในอนาคตคุณอาจต้องใช้ในโปรเจ็คของคุณนั่นเอง นี่เป็นโมดูลที่เราจะพูดถึง

  • fs: โมดูลสำหรับทำงานเกี่ยวกับไฟล์
  • path: โมดูลสำหรับทำงานกับพาธของไฟล์และโฟล์เดอร์
  • os: โมดูลสำหรับอ่านข้อมูลทรัพยากรของระบบปฏิบัติการ
  • events: โมดูลสำหรับทำงานกับ Event บน Node.js
  • http: โมดูลสำหรับสร้างเว็บเซิร์ฟเวอร์ผ่านทางโปรโตคอล HTTP

fs module

โมดูล fs นั้นเป็นโมดูลสำหรับทำงานกับไฟล์ มันประกอบไปด้วยฟังชันสำหรับทำงานกับไฟล์ระบบในรูปแบบต่างๆ เช่น การอ่านไฟล์ การเขียนไฟล์ การลบไฟล์ หรือการจัดการสิทธิบนไฟล์ เป็นต้น เพื่อใช้งานโมดูลคุณเพียงแค่นำเข้ามันด้วยคำสั่ง

const fs = require('fs');

จากนั้นคุณสามารถเข้าถึงฟังก์ชันทั้งหมดผ่านทางออบเจ็ค fs นี่เป็นตัวอย่างสำหรับเขียนข้อมูลลงบนไฟล์ myfile.txt โดยการใช้ฟังก์ชัน writeFile จากโมดูล fs

const fs = require('fs');

const content = 'Hello World!';

fs.writeFile('./myfile.txt', content, (err) => {
    if (err) {
        console.error(err)
        return
    }
    console.log('File written successfully.');
});

path module

โมดูล path นั้นประกอบไปด้วยฟังก์ชันสำหรับทำงานและจัดการกับพาธ ยกตัวอย่างเช่น รับเอาชื่อไฟล์จากพาธ หรือรับเอาโฟล์เดอร์จากพาธ และเมธอดอื่นๆ ที่ช่วยให้เราทำงานกับพาธได้ง่ายขึ้น เพิื่อใช้งานมัน คุณนำเข้าโมดูลด้วยคำสั่งต่อไปนี้

const path = require('path');

ยกตัวอย่างเช่น ฟังก์ชัน basename ใช้สำหรับรับเอาชื่อไฟล์จากไฟล์ ในขณะที่ฟังก์ชัน dirname รับเอาชื่อโฟล์เดอร์จากพาธดังกล่าว

const path = require('path');

path.basename('/test/myfile.txt'); // myfile
path.dirname('/test/myfile.txt'); // test

os module

โมดูล os มีค่าคงที่และฟังก์ชันสำหรับใช้เพื่อรับเอาข้อมูลและการทำงานเกี่ยวกับระบบปฏิบัติการที่ Node.js กำลังทำงานอยู่ เช่น ชื่อของระบบปฏิบัติการ ข้อมูลและการทำงานของ CPU หน่วยความจำของระบบ นี่จะมีประโยชน์เมื่อคุณต้องการนำข้อมูลเหล่านี้มาใช้ในโปรแกรม ในตัวอย่างนี้ เป็นการรับเอาประเภทของระบบปฏิบัติการและสถาปัตยกรรมของมัน

const os = require('os');

console.log(os.type());
console.log(os.arch());

นี่เป็นผลลัพธ์การทำงานของโปรแกรม

Windows_NT
x64

ซึ่งเป็นผลลัพธ์จากการรันโปรแกรมบนระบบปฏิบัติการบน Windows 8.1 สถาปัตยกรรมแบบ 64 Bits

events module

โมดูล Events เป็นโมดูลหลักที่ Node.js ใช้เป็นตัวรับและส่ง Event ในระบบของมัน โมดูลนี้ประกอบไปด้วยคลาส EventEmitter ที่ใช้สำหรับส่งและรับ Event บน Node.js แนวคิดนี้เหมือนกับการใช้งาน Event บนเว็บเบราว์เซอร์โดยที่ผู้ใช้งานจะเป็นผู้ส่ง Event โดยการมีปฏิสัมพันธ์กับหน้าเว็บเพจ เช่น การคลิกเมาส์ การกดคีย์บอร์ด การส่งฟอร์ม เป็นต้น

นี่เป็นตัวอย่างของการส่งและรับ Event อย่างง่ายบน Node.js

const EventEmitter = require('events');
const eventEmitter = new EventEmitter();

eventEmitter.on('start', () => {
    console.log('Handing start event');
});

eventEmitter.emit('start');

นี่เป็นผลลัพธ์การทำงานของโปรแกรม

Handing start event

ตัวอย่างนี้แสดงการส่งและรับ Event บน Node.js โดยการใช้คลาส EventEmitter จากโมดูล events เพื่อเริ่มต้นใช้งานเราสร้างออบเจ็คใหม่จากคลาสนี้

eventEmitter.on('start', () => {
    console.log('Handing start event');
});

เมธอด on ใช้กำหนดฟังก์ชันเพื่อให้ทำงานเมื่อ Event เกิดขึ้น โดยการกำหนดพารามิเตอร์แรกเป็นชื่อของ Event ในกรณีนี้คือ start และฟังก์ชัน Callback ที่จะทำงานเมื่อเกิด Event ขึ้นในพารามิเตอร์ที่สอง

eventEmitter.emit('start');

ส่วนการส่ง Event นั้นจะใช้เมธอด emit โดยระบุพารามิเตอร์เป็นชื่อของ Event ที่ต้องการส่ง ที่จะทำให้ฟังก์ชัน Callback ที่กำหนดโดยเมธอด on ที่สอดคล้องกับ Event นี้ทำงาน

http module

Node.js มีโมดูลที่เราสามารถใช้สำหรับสร้าง HTTP เซิร์ฟเวอร์ นอกจากนี้ยังมีโมดูลที่คล้ายกันนั่นคือโมดูล https สำหรับสร้าง HTTPS เว็บเซิร์ฟเวอร์ นี่เป็นตัวอย่างของเว็บเซิร์ฟเวอร์อย่างง่ายที่เราสามารถสร้างได้บน Node.js

const http = require('http');

const port = 3000;

const server = http.createServer((req, res) => {
    res.statusCode = 200;
    res.setHeader('Content-Type', 'text/html');
    res.end('<h1>Hello, World!</h1>');
})

server.listen(port, () => {
    console.log(`Server running at port ${port}`);
});

จากนั้นให้คุณลองรันโปรแกรมนี้และเปิดเว็บเบราว์เซอร์และไปที่ http://localhost:3000/ จะปรากฏหน้าเว็บแพจแสดงข้อความ "Hello World!" ซึ่งนี่เป็นเว็บไซต์จริงๆ ที่เราเพิ่งจะสร้างมันด้วย Node.js คุณสามารถเริิ่มต้นจากจุดนี้เพื่อสร้างเว็บแอพพลิเคชันที่ซับซ้อนได้

ในบทนี้ เราได้แนะนำให้คุณรู้จักกับโมดูลมาตรฐานบน Node.js โมดูลเหล่านี้เป็นโมดูลที่มากับ Node.js ที่สามารถนำเข้ามาใช้งานได้ทันที และเราได้พูดถึงภาพรวมของโมดูลเท่านั้น สำหรับการใช้งานแต่ละโมดูลอย่างละเอียดในกรณีที่คุณต้องการมันจะพูดถึงในบทต่อไป

บทความนี้เป็นประโยชน์หรือไม่?Yes·No