Skip to content

Node.js เบื้องต้น

Node.js เป็นแพลตฟอร์มที่นิยมใช้สำหรับพัฒนาแอปพลิเคชันด้านเซิร์ฟเวอร์ด้วย JavaScript

Introduction

ส่วนนี้จะแนะนำภาพรวมและประวัติของ Node.js

Node.js คือแพลตฟอร์มสำหรับพัฒนาแอปพลิเคชันด้านเซิร์ฟเวอร์ที่ใช้ภาษา JavaScript โดยมีลักษณะสำคัญดังนี้:

  • รันบนเครื่องยนต์ V8 ของ Google Chrome
  • ทำงานแบบ Event-Driven และ Non-blocking I/O
  • มีระบบโมดูล ที่ช่วยในการจัดระเบียบโค้ด
  • มี ecosystem ที่ใหญ่ที่สุด (npm) ด้วยแพ็กเกจมากกว่า 1 ล้านตัว

เหมาะสำหรับ:

  • แอปพลิเคชัน Real-time (Chat, Gaming)
  • API Services
  • Microservices
  • เครื่องมือพัฒนาซอฟต์แวร์

ประวัติโดยย่อ:

  • พัฒนาโดย Ryan Dahl ในปี 2009
  • เวอร์ชันปัจจุบัน: LTS (Long Term Support)
  • ถูกใช้งานโดยบริษัทใหญ่เช่น Netflix, Uber, PayPal

Key Features

FeatureDescription
Runtime Environmentสภาพแวดล้อมสำหรับรัน JavaScript บนเซิร์ฟเวอร์
Event-driven Architectureทำงานแบบ event-driven และ non-blocking I/O
Asynchronous Programmingรองรับการเขียนโปรแกรมแบบ asynchronous
Single-threaded with Event Loopใช้ single thread พร้อม event loop
Cross-platformทำงานได้บน Windows, Linux และ macOS
NPM (Node Package Manager)ระบบจัดการแพ็กเกจที่ใหญ่ที่สุด
Built-in Modulesมีโมดูลพื้นฐานเช่น fs, http, path ให้ใช้งาน

Installation

ส่วนนี้จะแนะนำวิธีการติดตั้ง Node.js บนระบบของคุณ

ติดตั้ง Node.js ด้วยวิธีที่เหมาะกับระบบของคุณ:

bash
# ติดตั้งผ่าน Scoop
scoop install nodejs

# ติดตั้งผ่าน Mise
mise use node@latest

# ติดตั้งผ่าน Proto
proto install node
bash
# ติดตั้งผ่าน Homebrew
brew install node
bash
# สำหรับ Ubuntu/Debian
sudo apt install nodejs npm

Basic Usage

ส่วนนี้จะแนะนำวิธีการใช้งาน Node.js ในระดับพื้นฐาน

การจัดการโปรเจค

  1. สร้างโปรเจคใหม่:
bash
npm init -y
bash
yarn init -y
bash
pnpm init -y
  1. ติดตั้งแพ็กเกจ:
bash
npm install package-name
bash
yarn add package-name
bash
pnpm add package-name

การรันโค้ด

  1. รันไฟล์ JavaScript:
bash
node filename.js
  1. ตัวอย่างเซิร์ฟเวอร์พื้นฐาน:
javascript
const http = require('http');

const server = http.createServer((req, res) => {
  res.writeHead(200, {'Content-Type': 'text/plain'});
  res.end('Hello World\n');
});

server.listen(3000, () => {
  console.log('Server running at http://localhost:3000/');
});

How Node.js Works

Node.js ใช้สถาปัตยกรรมแบบ Event Loop ที่ทำงานบน Single Thread โดยมีองค์ประกอบหลัก:

  1. Event Loop - จัดการงานแบบไม่บล็อก (non-blocking) และ asynchronous
  2. Worker Pool - จัดการงานที่ใช้ CPU หนักผ่าน libuv
  3. V8 Engine - JavaScript engine จาก Google
  4. Libuv - Library สำหรับจัดการ I/O แบบ asynchronous

ลำดับการทำงาน:

  1. รับ Request
  2. ส่งงาน I/O ให้ระบบปฏิบัติการ
  3. ทำงานต่อไปโดยไม่รอ
  4. เมื่องาน I/O เสร็จ เรียก callback function
  5. Event Loop execute callback

ข้อดี:

  • ประสิทธิภาพสูงเมื่อทำงานกับ I/O
  • ใช้ทรัพยากรน้อย
  • เขียนโค้ดง่ายกว่าแบบ multi-thread

ข้อจำกัด:

  • ไม่เหมาะกับงานที่ใช้ CPU หนัก
  • Callback hell หากไม่จัดการ asynchronous code ให้ดี

Core APIs

ส่วนนี้จะสรุป API หลักที่มาพร้อมกับ Node.js

ModuleDescriptionCommon Methods
fsการทำงานกับระบบไฟล์readFile, writeFile, readdir, stat
httpเซิร์ฟเวอร์และไคลเอนต์ HTTPcreateServer, request, get
pathอรรถประโยชน์เกี่ยวกับเส้นทางไฟล์join, resolve, basename, dirname
osอรรถประโยชน์เกี่ยวกับระบบปฏิบัติการplatform, arch, cpus, freemem
eventsระบบส่งและรับเหตุการณ์on, emit, once, removeListener
streamการจัดการสตรีมข้อมูลReadable, Writable, Duplex, Transform
utilฟังก์ชันอรรถประโยชน์promisify, inspect, format
child_processการสร้างโปรเซสย่อยexec, spawn, fork
cryptoฟังก์ชันการเข้ารหัสcreateHash, randomBytes, createCipher
urlการแยกวิเคราะห์ URLparse, format, resolve
querystringการจัดการ query stringparse, stringify
zlibการบีบอัดข้อมูลcreateGzip, createGunzip, createDeflate

Common Modules

ส่วนนี้จะแสดงลิงก์ไปยังเอกสารอย่างเป็นทางการของโมดูลต่างๆ

Resources

ส่วนนี้จะแสดงแหล่งข้อมูลเพิ่มเติมสำหรับศึกษา Node.js

Last updated: