在第一章學會了基礎變數後,這一章我們要進入 n8n 的「加工廠」。透過 Expression (表達式),你可以像寫簡單程式一樣,對資料進行加減乘除、文字接龍或是格式轉換。

學習目標 (Goal)

  • 混熟 Expression Editor:從拖拉取值到手動優化。

  • 學會 文字接龍與運算:組合固定文字與動態變數。

  • 掌握 Edit Fields (Set):高效建立多組資料欄位。

  • 學會用 Sort (排序) 與 Limit (限流) 進行初步資料清洗。

核心觀念 (Concepts)

1. Expression Editor:你的魔術棒

在 n8n 裡,點擊欄位旁邊的圖示即可進入 Expression 編輯器。

  • 左側清單 (Left Panel):展開即可看到所有可用的變數(如 $json, $today)。直接拖拉或點擊,編輯器會自動幫你填入 {{ ... }}
  • 預覽區塊 (Preview Result):這是最重要的區塊!它會即時顯示出目前處理後的結果。如果顯示 undefined,請檢查路徑是否正確。

2. 進階取值技巧

除了單純抓取變數,你還可以對資料進行「加工」:

  • 文字接龍 (Concatenation)Hello {{ $json.name }},您的餘額是 {{ $json.balance }} 元。

  • 數學運算{{ $json.price * 0.9 }} (計算九折後的價格)

  • 簡單轉換 (JavaScript Methods){{ $json.email.toLowerCase() }} (將 Email 轉為小寫) {{ $json.text.trim() }} (移除文字前後多餘的空格)

TIP

雖然 Expression 支援簡單的 JavaScript 語法,但請保持簡短。如果邏輯太複雜,之後我們會學習使用專門的 Code 節點。


節點配置 (Node Setup)

Step 1: 練習資料準備

我們使用一份簡單的訂單資料作為練習: { "product": "n8n Course", "price": 100, "user": "Danny" }

Step 2: 使用 Edit Fields (Set) 進行多重處理

  1. 拉入一個 Edit Fields (Set) 節點。

  2. Assignments 1: 建立一個 summary (String)。 內容:{{ $json.user }} 購買了 {{ $json.product }}

  3. Assignments 2: 建立一個 tax_included (Number)。 內容:{{ $json.price * 1.05 }} (計算含稅價)。

  4. Assignments 3: 建立一個 is_expensive (Boolean)。 內容:{{ $json.price > 50 }} (若價格大於 50 則為 true)。

Step 3: 資料清洗 (Sort & Limit)

當處理大量 Item 時,我們需要精挑細選:

  • Sort (排序):依照價格或時間進行由大到小 (Descending) 或由小到大 (Ascending) 排列。

  • Limit (限流):只保留前 X 筆資料,防止後續流程處理過量資料導致超支或當機。


實戰挑戰 (Challenge)

  1. 大寫轉換:試著把產品名稱 (product) 全部轉為大寫。

  2. 多欄位組合:建立一個 unique_id,組合 {{ $workflow.id }}$runIndex

  3. 邏輯判斷:嘗試用 {{ $json.price > 80 ? 'Premium' : 'Standard' }} (三元運算子) 來替產品貼標籤。


NOTE

[配圖建議:展示 Expression Editor 的全螢幕介面,重點標住「Result」區塊,展示一個正在進行字串拼接與數學計算的複雜 Expression。]


範例