iT邦幫忙

2026 iThome 鐵人賽

DAY 25
0
Vibe Coding

人機協同程式開發實戰:用 AI 輔助開發 Swift 與 Spring Boot,打造屬於自己的程式系列 第 25 篇

Day 25 — Antigravity x n8n 實戰 (下):攻克 Code Node 與複雜資料清洗轉換

  • 分享至 

  • xImage
  •  

在 n8n 中,當遇到預設節點無法處理的複雜商業邏輯、特殊加密演算或資料結構轉換時,我們通常會使用 Code Node(JavaScript / Python)。

今天我們來看如何利用 Antigravity 幫我們撰寫高品質的 Code Node 程式碼,並進行跨 API 的複雜資料串接!


1. 攻克 n8n 特有的 Data Item 結構

n8n 的 Code Node 採用特殊的資料結構(如 items 陣列與 $input.all())。初學者常因為不熟悉 JSON 陣列結構而寫出語法錯誤。

Antigravity 能夠自動處理這些特殊的語法規範:

  • 自動陣列對齊:確保輸出的資料符合 return [{ json: { ... } }] 的格式需求。
  • 複雜 Data Mapping:自動將前後端傳來的複雜 JSON 陣列(如訂單明細、用戶清單)清洗並重組為目標 API 所需的 Payload。

2. 實戰演練:複雜資料清洗與 HTTP Request 串接

假設我們需要將 Google Sheets 抓下來的雜亂數據,經過清洗過濾後,再打回我們的 Spring Boot 後端 API。

💡 實戰 Prompt 範例:

*「我正在撰寫 n8n 的 JavaScript Code Node。
請讀取以下輸入的 JSON 陣列資料:

[ {"name": "Alice", "score": "85"}, {"name": "Bob", "score": "null"} ]

需求:

  1. 使用 n8n 的 items 寫法,過濾掉分數為 null 或未滿 60 分的資料。
  2. 將 score 欄位轉為數字型別(Number)。
  3. 自動新增一個 status: "PASS" 欄位。
  4. 請輸出符合 n8n Code Node 規範的 JavaScript 程式碼,並加入繁體中文註解。」*

3. Antigravity 生成的 Code Node 代碼範例

// Antigravity 自動產出的 n8n JavaScript Code Node 程式碼
const outputItems = [];

for (const item of $input.all()) {
  const rawScore = item.json.score;
  
  // 防呆機制:檢查分數是否有效且大於等於 60 分
  if (rawScore && rawScore !== "null") {
    const numericScore = Number(rawScore);
    
    if (numericScore >= 60) {
      outputItems.push({
        json: {
          name: item.json.name,
          score: numericScore,
          status: "PASS",
          processedAt: new Date().toISOString()
        }
      });
    }
  }
}

return outputItems;

💡 本日總結

透過學習,我們掌握了利用 Antigravity(Gemini) 自動生成 n8n Workflow JSON 與 Code Node 的核心技巧。

這讓我們不再受限於內建節點,能以極快的速度打造出結合「AI Agent + 複雜數據處理 + 自動化排程」的企業級自動化工作流!


上一篇
Day 24 — Antigravity x n8n 實戰 (上):運用 Gemini 自動生成 n8n 工作流 JSON
下一篇
Day 26 — AI 開發隱藏小技巧 (一):利用 Context Locking 與 Rule Files 鎖定程式碼風格
系列文
人機協同程式開發實戰:用 AI 輔助開發 Swift 與 Spring Boot,打造屬於自己的程式 共 30 篇
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言