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).