Run JavaScript

action_run_js · action · Utility · Disponibile · v1.0.0

Descrizione

Esegue codice JavaScript in sandbox isolated-vm in-process (latenza <5ms, memoria 128MB default, timeout configurabile). No accesso filesystem, no rete, no require/import — pura JS std (Math/JSON/Array/Object/Date/String/RegExp). Variabili globali disponibili: input (output nodo precedente), vars (workflow vars), ctx (run metadata). Output: il valore returnato dallo script (deve essere JSON-serializable). Use case: trasformazione dati custom non coperta da logic_transform, calcoli business logic (es. provvigione tier-based), validation custom multi-field, mapping/reshape input prima di chiamata API downstream, generazione id deterministici via hash semplice.

⚙️ Parametri di configurazione

Campi mostrati nell’editor quando si configura il nodo. Generati direttamente dal NodeDefconfigFields.

CampoTipoRequiredDefaultDescrizione
code
Codice JavaScript
codesi// input = output del nodo precedente // vars = workflow variables // ctx = { tenantId, runId, nodeId } const items = input.items || []; const total = items.reduce((s, x) => s + (x.amount || 0), 0); return { total, count: items.length }; Codice JS. Usa "return <value>" per emettere output (JSON-serializable). Strict mode. No require/import/fetch/process/eval. Per data transformation pattern n8n-compat usa logic_transform (più ergonomico).
timeoutMs
Timeout (ms)
numberno5000Tempo massimo esecuzione. Min 100, max 30000. Default 5s.
memoryLimitMb
Memory limit (MB)
numberno128Limite memoria isolated-vm. Min 16, max 512. Default 128MB.

💡 Esempio configurazione

Snippet JSON del nodo come compare nel workflow. I valori sono derivati daidefaultValue e dai parametri required.

{
  "id": "node-action_run_js-1",
  "defId": "action_run_js",
  "label": "Run JavaScript",
  "config": {
    "code": "// input = output del nodo precedente\n// vars = workflow variables\n// ctx = { tenantId, runId, nodeId }\n\nconst items = input.items || [];\nconst total = items.reduce((s, x) => s + (x.amount || 0), 0);\nreturn { total, count: items.length };\n",
    "timeoutMs": 5000,
    "memoryLimitMb": 128
  }
}

🔗 Nodi correlati nella stessa categoria

Pronto a usare Run JavaScript?

Disponibile da subito in tutti i piani FlowForge. Provalo gratis senza carta di credito.

Inizia gratisSfoglia tutti i nodi