Node.js

什麼是 Node.js?

Node.js 是一個開源的、跨平台的 JavaScript 執行環境。它允許開發者在伺服器端運行 JavaScript,從而實現全棧開發。Node.js 使用了 Google 的 V8 JavaScript 引擎,這使得它的執行速度非常快。

主要特點

  • 非阻塞 I/O: Node.js ��用事件驅動、非阻塞 I/O 模型,使其非常適合於需要高並發的應用程序。
  • 單線程: 雖然 Node.js 是單線程的,但它可以處理多個連接,這是通過事件迴圈和回調機制實現的。
  • 豐富的生態系統: Node.js 擁有一個龐大的包管理系統(npm),提供了大量的第三方模塊和庫,方便開發者快速構建應用。

使用場景

  • Web 伺服器: Node.js 非常適合構建高效的 Web 伺服器。
  • API 服務: 使用 Node.js 可以輕鬆構建 RESTful API 和 GraphQL 服務。
  • 實時應用: 例如聊天應用、即時通知等需要實時交互的應用。

安裝 Node.js

可以從 Node.js 官方網站 下載並安裝最新版本的 Node.js。

# 在 Windows 或 macOS 上安裝 Node.js
# 下載安裝包並按照提示進行安裝

# 在 Linux 上使用包管理器安裝 Node.js
sudo apt-get install -y nodejs
sudo apt-get install -y npm

Hello World 範例

以下是一個簡單的 Node.js "Hello World" 範例:

// 引入 http 模塊
const http = require('http');

// 創建一個 HTTP 伺服器
const server = http.createServer((req, res) => {
    res.statusCode = 200;
    res.setHeader('Content-Type', 'text/plain');
    res.end('Hello World\n');
});

// 伺服器監聽在 3000 端口
server.listen(3000, '127.0.0.1', () => {
    console.log('伺服器運行在 http://127.0.0.1:3000/');
});

以上代碼創建了一個簡單的 HTTP 伺服器,當訪問 http://127.0.0.1:3000/ 時,會返回 "Hello World"。

結論

Node.js 是一個強大且靈活的工具,適合用於構建各種高效能的伺服器端應用。通過學習和使用 Node.js,你可以在全棧開發中充分發揮 JavaScript 的潛力。

Node.js 核心模塊

Node.js 提供了一些內置的核心模塊,這些模塊可以在不需要額外安裝的情況下直接使用。以下是一些常用的核心模塊:

http

http 模塊用於創建 HTTP 伺服器和客戶端。

const http = require('http');

// 創建一個 HTTP 伺服器
const server = http.createServer((req, res) => {
    res.statusCode = 200;
    res.setHeader('Content-Type', 'text/plain');
    res.end('Hello World\n');
});

// 伺服器監聽在 3000 端口
server.listen(3000, '127.0.0.1', () => {
    console.log('伺服器運行在 http://127.0.0.1:3000/');
});

fs

fs 模塊提供了文件系統相關的操作,如讀取和寫入文件。

const fs = require('fs');

// 讀取文件
fs.readFile('example.txt', 'utf8', (err, data) => {
    if (err) throw err;
    console.log(data);
});

// 寫入文件
fs.writeFile('example.txt', 'Hello Node.js', (err) => {
    if (err) throw err;
    console.log('文件已保存');
});

path

path 模塊提供了處理和轉換文件路徑的工具。

const path = require('path');

// 獲取文件名
const filename = path.basename('/foo/bar/baz/asdf/quux.html');
console.log(filename); // 輸出: 'quux.html'

// 獲取文件擴展名
const extname = path.extname('/foo/bar/baz/asdf/quux.html');
console.log(extname); // 輸出: '.html'

os

os 模塊提供了與操作系統相關的實用方法和屬性。

const os = require('os');

// 獲取操作系統的主機名
const hostname = os.hostname();
console.log(hostname);

// 獲取操作系統的空閒內存
const freemem = os.freemem();
console.log(freemem);

events

events 模塊提供了事件驅動的編程接口。

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

// 註冊事件
myEmitter.on('event', () => {
    console.log('事件觸發');
});

// 觸發事件
myEmitter.emit('event');

這些核心模塊是 Node.js 提供的強大工具,幫助開發者高效地構建各種應用程序。

Node.js 的管理工具

Node.js 提供了多種工具來幫助開發者管理和維護他們的 Node.js 環境和項目。以下是一些常用的管理工具:

npm (Node Package Manager)

npm 是 Node.js 的默認包管理器,用於安裝、共享和管理項目中的依賴包。

安裝依賴包

# 安裝項目中的所有依賴包
npm install

# 安裝特定的依賴包並將其添加到 package.json 中
npm install <package-name> --save

更新依賴包

# 更新所有依賴包
npm update

# 更新特定的依賴包
npm update <package-name>

移除依賴包

# 移除特定的依賴包
npm uninstall <package-name>

nvm (Node Version Manager)

nvm 是一個用於管理多個 Node.js 版本的工具,允許開發者在不同的 Node.js 版本之間切換。

安裝 nvm

可以從 nvm 官方 GitHub 頁面 下載並安裝 nvm。

使用 nvm

# 列出所有可用的 Node.js 版本
nvm ls-remote

# 安裝特定版本的 Node.js
nvm install <version>

# 使用特定版本的 Node.js
nvm use <version>

# 列出已安裝的 Node.js 版本
nvm ls

yarn

yarn 是另一個流行的包管理器,與 npm 類似,但提供了一些額外的功能和優化。

安裝 yarn

可以從 yarn 官方網站 下載並安裝 yarn。

使用 yarn

# 安裝項目中的所有依賴包
yarn install

# 安裝特定的依賴包並將其添加到 package.json 中
yarn add <package-name>

# 更新所有依賴包
yarn upgrade

# 移除特定的依賴包
yarn remove <package-name>

使用 Node.js 更新 mkdocs.yml

以下是一段使用 Node.js 更新 mkdocs.yml 檔案,將缺失的 Markdown 文件添加到導航中的範例代碼:

這些工具可以幫助開發者更高效地管理 Node.js 環境和依賴包,從而專注於開發工作。