代碼執行器節點
“代碼執行器”是FlowAI中的一個強大組件,它允許用戶編寫和執行JavaScript代碼來處理複雜的業務邏輯。通過代碼執行器,你可以實現比如字符串處理、條件判斷、循環操作等高級功能,極大地增強了工作流的靈活性和可擴展性。數據處理方面可以更加的隨心所欲,不拘泥於我們目前提供的節點的功能。
節點配置
基礎設置

-
節點名稱
- 為代碼執行器設置一個描述性名稱,以便於識別和管理。
- 建議使用能體現處理目的的名稱,如”數據轉換”、“字符串處理”等,確保團隊成員能夠快速理解節點的功能。
-
輸入參數 支持兩種參數輸入方式:
- 手動輸入:直接輸入固定值,適用於簡單場景。
- 從上下文獲取:引用之前節點的輸出值,適用於複雜的工作流。
-
代碼編輯區
- 在此區域編寫JavaScript代碼,確保代碼邏輯清晰。
- 必須使用
return語句返回結果,以便後續節點能夠獲取到輸出。 - 可以通過
input.參數名訪問輸入參數,靈活處理不同的輸入。
代碼格式規範
代碼執行器會將你的代碼封裝在一個函數中執行,因此必須遵循以下格式:
// 處理邏輯var result = someOperation();// 必須使用return返回結果return result;使用示例
1. 基礎示例 - 直接返回值
最簡單的示例,直接返回一個值:
return 1; // 返回數字12. 使用手動輸入參數
// 配置輸入參數:// 參數名:input1// 參數值:123// 輸入方式:手動輸入
return input.input1; // 將返回 "123"3. 字符串處理示例
使用上下文參數進行字符串拼接:
// 配置輸入參數:// 參數名:name// 參數值:$開始.輸入1// 輸入方式:從上下文獲取
var output = "hello " + input.name; // 返回 "hello [name]"return output;4. 複雜邏輯處理
// 示例:多重條件判斷和數組處理var data = input.data; // 獲取輸入數據var result = [];
// 數組處理for (var i = 0; i < data.length; i++) { if (data[i].value > 100) { result.push({ id: data[i].id, status: "high", // 高值狀態 }); } else if (data[i].value > 50) { result.push({ id: data[i].id, status: "medium", // 中值狀態 }); } else { result.push({ id: data[i].id, status: "low", // 低值狀態 }); }}
return result; // 返回處理後的結果數組5. 數據過濾與轉換
// 示例:過濾並轉換商品數據const products = input.products;
return products .filter((p) => p.price > 100) // 過濾高價商品 .map((p) => ({ id: p.id, name: p.name.toUpperCase(), // 標準化名稱 price: p.price * 0.9, // 應用9折 }));6. 類型轉換處理
// 示例:處理數字和字符串轉換const rawData = input.rawValue;
// 安全轉換邏輯return { stringValue: String(rawData).trim(), numberValue: isNaN(Number(rawData)) ? 0 : Number(rawData),};7. 數學運算示例
// 示例:統計數據分析const dataset = input.numbers;
return { average: dataset.reduce((a, b) => a + b) / dataset.length, maxValue: Math.max(...dataset), minValue: Math.min(...dataset),};最佳實踐
-
代碼組織
- 保持代碼簡潔清晰,避免冗餘。
- 適當添加註釋說明邏輯,幫助他人理解代碼。
- 將複雜邏輯分解為小的函數,提升可讀性和可維護性。
-
錯誤處理
try {// 你的業務邏輯var result = doSomething(); // 執行某個操作return result; // 返回結果} catch (error) {return {error: true,message: error.message, // 返回錯誤信息};} -
參數驗證
if (!input.required_param) {return {error: true,message: "Missing required parameter", // 返回缺少參數的提示};}
限制和注意事項
-
執行環境限制
- 不支持網絡請求,確保代碼邏輯不依賴外部數據。
- 不支持文件系統操作,避免文件讀寫相關的邏輯。
- 執行時間限制為30秒,確保代碼高效。
-
代碼安全
- 避免無限循環,確保代碼能夠正常終止。
- 注意內存使用,避免內存洩漏。
- 不要在代碼中包含敏感信息,保護用戶隱私。
-
調試建議
- 在本地環境測試複雜邏輯,確保代碼在真實環境中可用。
- 使用try-catch捕獲可能的錯誤,提升代碼的健壯性。
- 返回詳細的錯誤信息便於調試,幫助快速定位問題。
-
性能監控
- 使用
performance.now()測量關鍵代碼段的執行時間
const start = performance.now();// 關鍵邏輯const duration = performance.now() - start;return { result: data, duration }; - 使用
定製服務
官方團隊為您量身定製專業的自動化解決方案