Node.js 建立第一個程式:REPL 與腳本執行

準備好開發環境後,我們有兩種主要的方式來執行 Node.js 程式碼:透過 REPL 互動模式 以及 執行 JavaScript 實體檔案

使用 REPL 模式進行快速測試

REPL 代表 Read (讀取) - Eval (執行) - Print (列印) - Loop (迴圈)。這是一個類似命令列的互動環境,非常適合用來測試簡單的語法或內建函式。

在終端機輸入 node 並按下 Enter 即可進入:

$ node
Welcome to Node.js v20.10.0.
Type ".help" for more information.
> 1 + 1
2
> const name = "Mike";
undefined
> console.log(`Hello, ${name}`);
Hello, Mike
undefined

常用 REPL 指令

  • .exit 或連按兩次 Ctrl + C:退出 REPL 模式。
  • .help:查看所有可用的互動指令。
  • .editor:進入多行編輯模式。

執行 JavaScript 檔案(正規開發方式)

在實際開發中,我們會將程式碼寫在檔案中。請建立一個名為 app.js 的檔案,並輸入以下內容:

撰寫實戰程式碼

// app.js

// 1. 定義變數與輸出
const siteName = 'Fooish 程式教學';
console.log(`歡迎來到 ${siteName}!`);

// 2. 測試 Node.js 專屬的全域變數
console.log('當前執行檔案:', __filename);
console.log('所在目錄路徑:', __dirname);

// 3. 使用非同步計時器
console.log('計時器啟動...');
setTimeout(() => {
  console.log('這是在 2 秒後觸發的非同步訊息。');
}, 2000);

執行程式

開啟終端機,切換到該檔案所在的資料夾,執行:

node app.js

小技巧:使用 --watch 模式 (Node 18.11+)

在開發時,每次修改都要手動重啟程式很麻煩。Node.js 現在原生支援監控模式,只要檔案存檔就會自動重啟:

node --watch app.js

Node.js 與瀏覽器環境的核心差異

雖然使用的都是 JavaScript 語法,但在伺服器端開發有幾點本質上的不同:

  1. 沒有 DOM/BOM 物件:在 Node.js 中不存在 window, documentalert()。如果你嘗試呼叫它們,會發生 ReferenceError
  2. 強大的檔案權限:Node.js 可以不受限制地讀寫伺服器上的檔案系統 (File System),這是在瀏覽器中礙於安全考量而無法做到的。
  3. 原生支援 CommonJS 與 ESM:Node.js 具備成熟的模組系統,讓你方便地組織與拆分代碼。
Node.js 18 版本之後已經內建支援 fetch() API,這讓撰寫跨平台的網路請求代碼變得更加一致。