文件節點
本頁目錄

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 介面,跨執行業務值則明確寫入工作流程狀態。虛擬檔案和本機全域變數都不能作為持久化儲存。

程式碼節點支援任務重試和錯誤處理。重試會重新執行整個模組,可能重複外部操作。資源限制、取消和結果不確定等情況仍按執行階段契約處理。

資料來源

搜尋