1. 什麼是 Node.js?
Node.js 是一個基於 Chrome V8 引擎建立的 JavaScript 執行階段,允許在伺服器端執行 JavaScript。 Node.js 由 Ryan Dahl 於 2009 年推出,徹底改變了世界對 JavaScript 的看法。
| 成分 | 角色 |
|---|---|
| V8發動機 | JS編譯→機器碼、記憶體管理 |
| 利布夫 | 事件循環、非同步I/O、線程池、跨平台 |
| C++ 綁定 | 將 JS 連接到系統級 API(fs、net、crypto) |
| Node.js API | JavaScript API(http、路徑、事件、串流…) |
2.Node.js架構
┌─────────────────────────┐
│ Your JavaScript │
├─────────────────────────┤
│ Node.js APIs │
│ (http, fs, crypto…) │
├─────────────────────────┤
│ C++ Bindings │
├──────────┬──────────────┤
│ V8 │ libuv │
│ Engine │ (event loop)│
└──────────┴──────────────┘
│ Operating System │
3. Node.js vs Deno vs Bun
| 特點 | Node.js | 德諾 | 包子 |
|---|---|---|---|
| 引擎 | V8 | V8 | JavaScript核心 |
| 語言 | C++ | 鐵鏽 | 之字形 |
| 打字稿 | --實驗條帶類型 | 本地人 | 本地人 |
| 套件管理器 | npm/pnpm/紗線 | 德諾加 | 包子安裝 |
| 生態系統 | 最大(3M+ 封裝) | 相容 npm | 相容 npm |
| 安全性 | 完全存取權限 | 權限 | 完全存取權限 |
4. 安裝與設定
# Cài Node.js qua nvm
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.0/install.sh | bash
nvm install 22
nvm use 22
node --version # v22.x.x
# Cài pnpm
corepack enable
corepack prepare pnpm@latest --activate
# Khởi tạo project
mkdir my-node-project && cd my-node-project
pnpm init
5.V8引擎標誌
# Xem tất cả V8 flags
node --v8-options | head -50
# Giới hạn memory
node --max-old-space-size=4096 app.js
# Inspect debugger
node --inspect app.js # Chrome DevTools tại chrome://inspect
node --inspect-brk app.js # Break ở dòng đầu tiên
# V8 profiling
node --prof app.js
node --prof-process isolate-*.log > processed.txt
6. 你好世界和 REPL
// hello.ts
const message: string = 'Hello from Node.js!'
console.log(message)
console.log(`Node.js version: ${process.version}`)
console.log(`Platform: ${process.platform}`)
console.log(`Architecture: ${process.arch}`)
console.log(`PID: ${process.pid}`)
console.log(`Memory: ${JSON.stringify(process.memoryUsage())}`)
# Chạy TypeScript trực tiếp (Node.js 22+)
node --experimental-strip-types hello.ts
# Hoặc dùng tsx
npx tsx hello.ts
下一篇: 事件循環和非同步模式 ——階段、微任務、巨集任務。