JavaScript 指令碼
在隔離環境中用 JavaScript 模組處理輸入,並明確宣告輸出。
JavaScript 指令碼節點(介面類型為 code)適合資料轉換、計算,以及組合受支援的能力呼叫。如果只需要發起一個 HTTP 請求,不涉及資料轉換,HTTP 請求節點通常設定更少。
模組與連接埠
程式碼是一個 ES 模組,預設匯出函式接收 (inputs, context),回傳業務輸出或解析為業務輸出的 Promise。
export default ({ name, prefix }) => ({
message: `${prefix}, ${name}!`
});
透過 config.outputs 宣告自訂輸出 schema。具名輸入可直接綁定,也可以在 config.inputs 中新增約束。模組 ID 和執行階段組裝由公開介面負責。
{
"op": "node.add", "as": "greet", "type": "code", "name": "Compose greeting",
"code": "export default ({name, prefix}) => ({message: `${prefix}, ${name}!`});",
"config": { "outputs": { "message": { "schema": { "type": "string" }, "nullable": false } } },
"inputs": {
"name": { "kind": "value", "value": "Ada" },
"prefix": { "kind": "value", "value": "Hello" }
}
}


- 輸入
- {"name":"Ada"}
- 預期結果
- {"message":"Hello, Ada!"}
- 執行前準備
- 匯入或執行此案例需要 Open Flow 服務;預覽本身可離線使用。
執行階段限制
受支援的 Node 內建模組只是相容子集。每次任務都會獲得從 /tmp 開始的全新記憶體檔案系統,既不能存取主機系統磁碟,也不會延續到下次呼叫。不支援任意套件、動態匯入和 CommonJS require。
呼叫應用操作、工作流程或 HTTP 主機時,需要明確宣告程式碼能力。context.fetch 受已宣告主機和部署端目前引擎契約限制,不會繼承平臺憑證,也不提供任意網路存取。
持久化結果與失敗
業務輸出應回傳 JSON。執行所屬的二進位內容使用受支援的 Artifact 介面,跨執行業務值則明確寫入工作流程狀態。虛擬檔案和本機全域變數都不能作為持久化儲存。
程式碼節點支援任務重試和錯誤處理。重試會重新執行整個模組,可能重複外部操作。資源限制、取消和結果不確定等情況仍按執行階段契約處理。