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