Documentation is being updated. Some sections may not reflect the latest features.

Code Execution Node

Benutzerdefinierten JavaScript-Code in Ihren Workflows ausführen.

Überblick

Der Code Node ermöglicht es Ihnen, benutzerdefiniertes JavaScript zu schreiben, um Daten zu transformieren, Berechnungen durchzuführen oder benutzerdefinierte Logik zu implementieren, die in anderen Nodes nicht verfügbar ist.

Konfiguration

Feld Beschreibung Erforderlich
Name Ein beschreibender Name für diesen Codeblock Nein
Code Auszuführender JavaScript-Code Ja
Output Variable Variablenname zum Speichern des Ergebnisses Ja

Code schreiben

Der Code-Editor unterstützt vollständiges JavaScript mit Syntaxhervorhebung. Ihr Code sollte einen Wert zurückgeben, der in der Ausgabevariable gespeichert wird.

Auf Variablen zugreifen

Verwenden Sie die Template-Syntax, um auf Variablen aus vorherigen Nodes zuzugreifen:

// Auf eine einfache Variable zugreifen
const data = {{api_response}};

// Auf verschachtelte Eigenschaften zugreifen
const userName = {{user.profile.name}};

// In Berechnungen verwenden
const total = {{order.items}}.reduce((sum, item) => sum + item.price, 0);

Beispiel: Daten transformieren

// Eingabevariablen abrufen
const users = {{user_list}};

// Daten transformieren
const activeUsers = users.filter(u => u.active);
const summary = {
  total: users.length,
  active: activeUsers.length,
  emails: activeUsers.map(u => u.email)
};

// Ergebnis zurückgeben
return summary;

Beispiel: Datenvalidierung

const input = {{form_data}};

// Pflichtfelder validieren
if (!input.email || !input.name) {
  return { valid: false, error: 'Missing required fields' };
}

// E-Mail-Format validieren
const emailRegex = /^[^\s@]+@[^\s@]+\.[^\s@]+$/;
if (!emailRegex.test(input.email)) {
  return { valid: false, error: 'Invalid email format' };
}

return { valid: true, data: input };

Variablen einfügen

Klicken Sie auf die Schaltfläche Insert Variable, um verfügbare Variablen aus vorherigen Nodes direkt in Ihren Code einzufügen.

Einschränkungen

  • Ausführungszeitlimit: 30 Sekunden
  • Keine externen HTTP-Anfragen (verwenden Sie stattdessen den HTTP Node)
  • Kein Dateisystemzugriff
  • Kein Zugriff auf Browser-APIs

Best Practices

  • Halten Sie den Code fokussiert und einfach
  • Verwenden Sie aussagekräftige Variablennamen
  • Fügen Sie Kommentare für komplexe Logik hinzu
  • Behandeln Sie Grenzfälle und Fehler
  • Geben Sie strukturierte Daten zurück, um den Zugriff in nachfolgenden Nodes zu erleichtern

Verfügbare Funktionen & Umgebung

Die JavaScript-Umgebung ist sandboxed, enthält aber vorinstallierte leistungsstarke Hilfsfunktionen für Kryptografie, Datentransformation und die Generierung eindeutiger IDs.

Kryptografie & Signaturen

Funktion Beschreibung Beispiel
signMessage(msg, [privKey]) Signiert eine Nachricht mit Ed25519. Gibt Signatur & Schlüssel zurück. const res = signMessage("hello");
verifyMessage(msg, sig, pubKey) Verifiziert eine Ed25519-Signatur. Gibt true/false zurück. verifyMessage(msg, sig, pubKey)
encryptMessage(msg, [pubKey]) Verschlüsselt eine Nachricht mit X25519 + AES-GCM. const res = encryptMessage("secret");

JWT (JSON Web Tokens)

Funktion Beschreibung Beispiel
jwtSign(payload, secret) Erstellt einen signierten HS256 JWT-String. const token = jwtSign({ sub: "123" }, "secret");
jwtVerify(token, secret) Verifiziert ein Token und gibt den Payload zurück. Wirft bei Fehler eine Exception. const claims = jwtVerify(token, "secret");
jwtDecode(token) Dekodiert ein Token ohne Verifizierung. const claims = jwtDecode(token);

Hilfsfunktionen

Funktion Beschreibung Beispiel
uuid() Generiert eine zufällige UUID v4. const id = uuid();
md5(string) Gibt MD5-Hash (hex) zurück. md5("hello")
sha1(string) Gibt SHA1-Hash (hex) zurück. sha1("hello")
sha256(string) Gibt SHA256-Hash (hex) zurück. sha256("hello")
sha512(string) Gibt SHA512-Hash (hex) zurück. sha512("hello")

HMAC (Hash-basierte Nachrichtenauthentifizierung)

Funktion Beschreibung Beispiel
hmacSHA1(data, secret) Berechnet HMAC-SHA1. Gibt Hex-String zurück. hmacSHA1("message", "secret")
hmacSHA256(data, secret) Berechnet HMAC-SHA256. Gibt Hex-String zurück. hmacSHA256("message", "secret")
hmacSHA512(data, secret) Berechnet HMAC-SHA512. Gibt Hex-String zurück. hmacSHA512("message", "secret")

Verwenden Sie HMAC-Funktionen, um Webhook-Signaturen von Drittanbieterdiensten wie Twilio, Stripe oder GitHub zu verifizieren.

// Beispiel: Eine Twilio-Webhook-Signatur verifizieren
var dataString = url + sortedParams;
var computed = hmacSHA256(dataString, authToken);
// Mit dem Signatur-Header aus der Anfrage vergleichen

Kodierung

Funktion Beschreibung Beispiel
base64Encode(str) Kodiert String in Base64. base64Encode("user:pass")
base64Decode(str) Dekodiert Base64-String. base64Decode("dXNlcjpwYXNz")
hexEncode(str) Kodiert String in Hex. hexEncode("hello")
hexDecode(str) Dekodiert Hex-String. hexDecode("68656c6c6f")
urlEncode(str) URL-kodiert einen String. urlEncode("search & find")
urlDecode(str) Dekodiert einen URL-kodierten String. urlDecode("search+%26+find")

Passwort-Hashing (Bcrypt)

Funktion Beschreibung Beispiel
bcryptHash(password) Hasht ein Passwort mit Bcrypt (Kostenfaktor 10). const hash = bcryptHash("mypassword");
bcryptVerify(password, hash) Verifiziert ein Passwort gegen einen Hash. Gibt true/false zurück. bcryptVerify("mypassword", hash)

Eingaben & Variablen

  • inputs: Zugriff auf Node-spezifische Eingaben, die in der Node-Konfiguration definiert sind.
  • variables: Zugriff auf globale Flow-Variablen.
    • variables._trigger: Enthält Metadaten über den Workflow-Trigger (Methode, IP, Header).
    • variables._rawBody: Der rohe String-Body der Trigger-Anfrage (entscheidend für die Signaturverifizierung).
AI AssistantPowered by Ubex
Beta
Ask me anything about Ubex workflows, nodes, or the API.
~/

Hallo 👋

Wie können wir Ihnen heute helfen?