Dark mode
Built-in Modules ของ Node.js
Node.js มาพร้อมกับชุดโมดูลพื้นฐาน (Built-in Modules) ที่ทรงพลังซึ่งเป็นส่วนหนึ่งของแพลตฟอร์ม ทำให้เราสามารถสร้างแอปพลิเคชันที่ซับซ้อนได้โดยไม่ต้องติดตั้งไลบรารีภายนอก โมดูลเหล่านี้ครอบคลุมการทำงานหลากหลายประเภท ตั้งแต่การจัดการไฟล์, เครือข่าย, ไปจนถึงการจัดการ process และการเข้ารหัสข้อมูล
ตารางด้านล่างสรุปโมดูลที่สำคัญ โดยจัดกลุ่มตามประเภทการใช้งาน พร้อมข้อมูลคำอธิบาย, ไลบรารีทางเลือกยอดนิยม, และบริบทการใช้งานทั่วไป
CLI & Process
โมดูลสำหรับจัดการ Command Line Interface (CLI), process ของระบบ, และการทำงานแบบ multi-threading
Module | คำอธิบาย | Node Libraries ทางเลือก | ความนิยม | ใช้ใน |
---|---|---|---|---|
process | ข้อมูลและควบคุม process ปัจจุบัน - เข้าถึง environment variables, command line arguments และจัดการ process lifecycle | dotenv , yargs | ✅ นิยมใช้ | server, worker |
child_process | สร้างและจัดการ child processes - รันคำสั่ง shell และโปรแกรมภายนอกจาก Node.js | execa , zx | ✅ นิยมใช้ | server |
worker_threads | ทำงานแบบ multi-threaded - ประมวลผลงานที่ใช้ CPU สูงโดยไม่บล็อก event loop | piscina , workerpool | ⚠️ นิยมในบางกรณี | server, worker |
cluster | สร้าง multi-process application - ใช้ประโยชน์จาก CPU หลาย core โดยการสร้าง child processes ที่แชร์ server port เดียวกัน | pm2 (Process Manager) | ⚠️ นิยมในบางกรณี | server |
readline | อ่านข้อมูลป้อนเข้าจาก command line - สร้างส่วนติดต่อผู้ใช้แบบ CLI และรับข้อมูลจากผู้ใช้ | inquirer , prompts | ⚠️ นิยมใช้ไลบรารีทางเลือก | server, CLI |
os | ข้อมูลระบบปฏิบัติการ - เข้าถึงข้อมูล CPU, หน่วยความจำ, และอินเทอร์เฟซเครือข่ายของระบบ | systeminformation | ✅ นิยมใช้ | server |
tty | จัดการ Terminal - ตรวจสอบว่า stdout และ stdin เป็น TTY (teletype) หรือไม่ | is-tty | ⚠️ นิยมในบางกรณี | server, CLI |
File System
โมดูลสำหรับทำงานกับไฟล์และไดเรกทอรีในระบบ
Module | คำอธิบาย | Node Libraries ทางเลือก | ความนิยม | ใช้ใน |
---|---|---|---|---|
fs | ทำงานกับระบบไฟล์ - อ่าน/เขียนไฟล์, สร้างไดเรกทอรี และจัดการสิทธิ์การเข้าถึงไฟล์ | fs-extra , memfs | ✅ นิยมใช้ | server |
path | จัดการเส้นทางของไฟล์ - สร้างและแยกส่วนเส้นทางไฟล์ที่ทำงานได้ทุกระบบปฏิบัติการ | pathe , upath | ✅ นิยมใช้ | server, browser |
Networking
โมดูลสำหรับสร้างแอปพลิเคชันเครือข่าย, ตั้งแต่เว็บเซิร์ฟเวอร์ไปจนถึงการจัดการ DNS
Module | คำอธิบาย | Node Libraries ทางเลือก | ความนิยม | ใช้ใน |
---|---|---|---|---|
http | สร้าง HTTP server และ client - พื้นฐานสำหรับการสร้างเว็บเซิร์ฟเวอร์และส่งคำขอ HTTP | express , fastify , axios | ✅ นิยมใช้ (ผ่าน framework) | server |
https | สร้าง HTTPS server และ client - เหมือน http แต่เพิ่มความปลอดภัยด้วย SSL/TLS | (เหมือน http ) | ✅ นิยมใช้ | server |
http2 | สร้าง HTTP/2 server และ client - รองรับโปรโตคอล HTTP/2 ที่มีประสิทธิภาพสูงกว่า | (Frameworks ส่วนใหญ่รองรับ) | ⚠️ นิยมในบางกรณี | server |
net | สร้าง TCP server และ client - สำหรับการสื่อสารผ่านเครือข่ายระดับต่ำโดยใช้ TCP | ws (สำหรับ WebSockets) | ✅ นิยมใช้ | server |
dgram | จัดการ UDP/datagram sockets - สำหรับการส่งข้อมูลแบบ connectionless | - | ⚠️ นิยมในบางกรณี | server |
dns | จัดการ DNS - แปลงชื่อโดเมนเป็น IP address และกลับกัน | dns-lookup | ✅ นิยมใช้ | server |
url | จัดการ URL - แยกส่วนและสร้าง URL ตามมาตรฐาน WHATWG | url-parse | ✅ นิยมใช้ | server, browser |
querystring | จัดการ Query String - แยกส่วนและสร้าง URL query string (Legacy) | qs , URLSearchParams | ⚠️ นิยมใช้ URLSearchParams | server, browser |
Data Handling & Utilities
โมดูลสำหรับจัดการข้อมูลในรูปแบบต่างๆ และเครื่องมืออรรถประโยชน์ทั่วไป
Module | คำอธิบาย | Node Libraries ทางเลือก | ความนิยม | ใช้ใน |
---|---|---|---|---|
stream | จัดการข้อมูลแบบสตรีม - อ่านและเขียนข้อมูลเป็นชิ้นเล็กๆ อย่างต่อเนื่อง | through2 , readable-stream | ✅ นิยมใช้ (เป็นพื้นฐาน) | server, worker |
buffer | จัดการข้อมูลไบนารี - ทำงานกับข้อมูลที่ไม่ใช่ข้อความ เช่น รูปภาพ หรือข้อมูลจากเครือข่าย | - | ✅ นิยมใช้ (เป็นพื้นฐาน) | server, worker |
zlib | บีบอัดและคลายการบีบอัดข้อมูล - ใช้อัลกอริทึม Gzip, Deflate, Brotli | pako | ✅ นิยมใช้ | server |
events | จัดการ Event - สร้างและจัดการ custom events ด้วยรูปแบบ observer pattern | eventemitter3 | ✅ นิยมใช้ (เป็นพื้นฐาน) | server, worker, browser |
util | ฟังก์ชันอรรถประโยชน์ต่างๆ - เครื่องมือช่วยเหลือทั่วไป เช่น promisify , inspect | lodash , remeda | ✅ นิยมใช้ | server, worker |
string_decoder | แปลง Buffer เป็น String - จัดการกับการแปลง Buffer เป็นข้อความที่รองรับ multi-byte characters | iconv-lite | ⚠️ นิยมในบางกรณี | server |
Cryptography & Security
โมดูลสำหรับจัดการด้านความปลอดภัยและการเข้ารหัสข้อมูล
Module | คำอธิบาย | Node Libraries ทางเลือก | ความนิยม | ใช้ใน |
---|---|---|---|---|
crypto | ฟังก์ชันด้านการเข้ารหัส - ให้บริการฟังก์ชันการเข้ารหัสต่างๆ เช่น Hash, HMAC, Cipher, Sign | bcrypt , node-forge | ✅ นิยมใช้ | server, worker |
tls | จัดการ TLS/SSL - เป็นพื้นฐานของ https สำหรับการสร้างการเชื่อมต่อที่ปลอดภัย | - | ✅ นิยมใช้ (ผ่าน https ) | server |
Debugging & Performance
โมดูลสำหรับดีบักโค้ดและวัดประสิทธิภาพการทำงาน
Module | คำอธิบาย | Node Libraries ทางเลือก | ความนิยม | ใช้ใน |
---|---|---|---|---|
console | การแสดงผลในคอนโซล - ใช้สำหรับ debug โดยการพิมพ์ข้อความไปยัง stdout และ stderr | pino , winston , chalk | ✅ นิยมใช้ | server, worker, browser |
inspector | เชื่อมต่อกับ Debugger - เปิดใช้งานการดีบักผ่านเครื่องมืออย่าง Chrome DevTools | - | ⚠️ นิยมในบางกรณี | server |
perf_hooks | วัดประสิทธิภาพ - ให้ API สำหรับวัดประสิทธิภาพของโค้ด | benchmark.js | ⚠️ นิยมในบางกรณี | server, worker |
trace_events | ติดตาม Trace Events - ให้กลไกสำหรับติดตามและดู trace events ที่สร้างโดย Node.js | - | ⚠️ นิยมในบางกรณี | server |
Testing & Assertion
โมดูลสำหรับการเขียนเทสและยืนยันความถูกต้องของโค้ด
Module | คำอธิบาย | Node Libraries ทางเลือก | ความนิยม | ใช้ใน |
---|---|---|---|---|
assert | การทดสอบและการยืนยัน - ชุดของฟังก์ชันยืนยันที่ใช้ในการทดสอบโค้ด | jest , mocha , chai | ⚠️ นิยมใช้ไลบรารีทางเลือก | test |
JavaScript Engine & Execution
โมดูลสำหรับทำงานกับ V8 JavaScript engine และควบคุมสภาพแวดล้อมการรันโค้ด
Module | คำอธิบาย | Node Libraries ทางเลือก | ความนิยม | ใช้ใน |
---|---|---|---|---|
vm | รันโค้ดใน Sandbox - สร้างและรันโค้ด JavaScript ใน V8 context ที่แยกออกมา | isolated-vm | ⚠️ นิยมในบางกรณี | server |
async_hooks | ติดตาม Asynchronous Resources - ให้ API สำหรับติดตาม lifetime ของ asynchronous resources | cls-hooked | ⚠️ นิยมในบางกรณี | server |
wasi | WebAssembly System Interface - รองรับการทำงานกับ WebAssembly (Wasm) | - | ⚠️ นิยมในบางกรณี | server |
Network & Web
Module | คำอธิบาย | Node Libraries ทางเลือก | ความนิยม | ใช้ใน |
---|