Skip to main content

Überblick

Mit dem Code-Node verarbeitest du Workflow-Daten direkt mit eigenem JavaScript- oder Python-Code. Nutze ihn, wenn Standard-Nodes nicht ausreichen, zum Beispiel für Berechnungen, Formatierungen, Validierungen, Dateiverarbeitung oder individuelle Geschäftslogik. Code

Wann du den Code-Node verwenden solltest

Die Code-Node ist perfekt für:
  • Datentransformationen und Formatierung
  • Mathematische Berechnungen
  • Benutzerdefinierte Geschäftslogik
  • JSON-Parsing und Manipulation
  • Datenvalidierung und -bereinigung
  • Datums-/Zeitoperationen
  • Dateiverarbeitung mit JavaScript und Python
Die Code-Node ist nicht ideal für:
  • KI-Analyse (verwende Agent-Node)
  • Externe API-Aufrufe (verwende HTTP-Request-Node)
  • Einfache Bedingungen (verwende Condition-Node)
  • Lange oder interaktive Analysen (verwende Datenanalyse)

Konfiguration

Sprache: Wähle aus, ob du deinen Code in JavaScript oder Python schreiben möchtest. Code-Editor: Schreibe deine Transformationslogik in der ausgewählten Sprache im Code-Editor, der sich öffnet, wenn du den Code-Node auswählst Auf vorherige Nodes zugreifen: Outputs von vorherigen Nodes sind als Variablen im Code-Node verfügbar. Die verfügbaren Variablennamen werden oben im Code-Editor angezeigt. Nur vorgelagerte Nodes, deren Slugs in deinem Code vorkommen, werden geladen. Der Zugriff über data oder das dynamische Nachschlagen von Outputs statt über ihren Slug lädt stattdessen alle vorgelagerten Outputs. Wie du den Output des Code-Nodes später verwendest, findest du unter Auf Code-Output zugreifen.

Beispiele

Statistiken berechnen

Daten validieren und bereinigen

Arrays transformieren und filtern

Datumsoperationen

JSON-Verarbeitung

Aggregieren und Zusammenfassen

Datei mit JavaScript erstellen

JavaScript kann Workflow-Dateien erzeugen, indem es ein files-Array zurückgibt. Jeder Eintrag muss fileName, mimeType und entweder text (für Text-, CSV- oder JSON-Inhalte) oder base64 (für binäre Inhalte) enthalten. Die Laufzeit lädt die Dateien hoch und hängt sie am Node-Output unter _files an.
JavaScript

Dateien aus vorherigen Nodes lesen

Dateien aus vorherigen Nodes, zum Beispiel Formular-Uploads oder Action-Outputs, liegen im Python-Arbeitsverzeichnis bereit. Jedes Datei-Objekt enthält einen path, den du direkt an open() übergeben kannst, sowie den ursprünglichen Dateinamen unter _metadata.name.
Python

Datei mit Python erstellen

Dateien, die du mit Python im Arbeitsverzeichnis erstellst, werden dem Node-Output unter _files hinzugefügt.
Python

Auf Code-Output zugreifen

Verwende den Code-Node-Namen, um auf zurückgegebene Werte aus JavaScript oder Python in nachfolgenden Nodes zuzugreifen:
Dateien, die JavaScript zurückgibt oder die du mit Python im Arbeitsverzeichnis erstellst, sind unter _files verfügbar:

Sprachfunktionen

Die Funktionen des Code-Nodes hängen von der ausgewählten Sprache ab.

JavaScript

JavaScript läuft in einer sicheren Sandbox-Umgebung mit integrierten Utility-Funktionen:
  • ld.request(): HTTP-Anfragen ausführen
  • ld.log(): Debugging-Informationen ausgeben
  • Datenkonvertierungen: CSV-, Parquet-, Arrow-Format-Konvertierungen
  • Datei-Erstellung: Gib ein files-Array zurück, um erzeugte Dateien unter _files bereitzustellen
  • Standard-JavaScript: JSON-, Date-, Math-, Array-, Object-Methoden

Vollständige Utilities-Referenz

Sieh dir alle verfügbaren Sandbox-Utilities an, einschließlich Datenkonvertierungen, SQL-Validierung, Kryptographie und mehr.

Python

Python läuft in einer isolierten Umgebung ohne Internetzugang.
  • Verwende return auf oberster Ebene, um den Node-Output festzulegen
  • Verwende print(), um Logs zu schreiben
  • Verwende vorinstallierte Daten- und Dokumentbibliotheken wie pandas, numpy, openpyxl und pypdf
  • Greife auf vorgelagerte Outputs als Variablen zu, wenn ihre Slugs in deinem Code vorkommen und gültige Python-Bezeichner sind
  • Lies Dateien aus vorherigen Nodes, indem du file["path"] an open() übergibst
  • Speichere Dateien im Arbeitsverzeichnis, um sie unter _files bereitzustellen
  • Läuft ohne Internetzugang
Die JavaScript-Utilities ld.* sind in Python nicht verfügbar.

Best Practices

Gib Daten als Objekte zurück für einfachen Zugriff in späteren Nodes. Das macht es einfach, spezifische Werte in nachfolgenden Nodes mit Punkt-Notation zu referenzieren.
Verwende ||, Optional Chaining oder Python .get(), um Standardwerte bereitzustellen und Fehler zu verhindern, wenn Daten undefined oder null sind.
Umschließe riskante Operationen mit try/catch in JavaScript oder try/except in Python. Das hilft dir, Workflow-Fehler zu verhindern und aussagekräftige Fehlermeldungen bereitzustellen.
Komplexe Logik könnte in einem Agent-Node besser aufgehoben sein. Verwende Code-Nodes für unkomplizierte Transformationen und Berechnungen, nicht für Aufgaben, die Intelligenz oder Kontextverständnis erfordern.
Code-Nodes schlagen fehl, wenn die geladenen vorgelagerten Outputs 5 MiB überschreiten. Referenziere nur die Slugs, die du brauchst, da data und andere dynamische Zugriffe auf Outputs alle vorgelagerten Outputs laden.
Dokumentiere, was dein Code macht, für zukünftige Referenz. Klare Kommentare helfen dir und deinem Team, die Logik zu verstehen, wenn der Workflow später erneut besucht wird.

Limits

Jeder Code-Node hat ein Limit von 5 MiB für die kombinierten Eingaben, die er von vorherigen Nodes erhält. Bevor dein Code ausgeführt wird, misst Langdock die Größe der vorgelagerten Outputs, deren Slugs in deinem Code vorkommen. Überschreiten diese 5 MiB, schlägt der Node mit einer Fehlermeldung fehl und dein Code wird nicht ausgeführt. Der Zugriff über data oder das dynamische Nachschlagen von Outputs statt über ihren Slug lädt stattdessen alle vorgelagerten Outputs. Deren gesamte Größe wird auf das Limit angerechnet. Häufige Ursachen:
  • Ein Loop-Node, der die Outputs vieler Iterationen in einem einzigen Array sammelt.
  • Ein vorgelagerter Node, der eine sehr große API-Antwort, Dateiinhalte oder einen großen Datensatz zurückgibt.
  • Tief verschachtelte Objekte, deren Größe nicht sicher gemessen werden kann.
Wenn du an dieses Limit stößt, kannst du Folgendes tun:
  • Verkleinere den Output des vorgelagerten Nodes, indem du filterst, zusammenfasst oder nur die benötigten Felder auswählst.
  • Verarbeite weniger Elemente pro Iteration in einem vorhergehenden Loop-Node.
  • Deaktiviere die Output-Sammlung im vorhergehenden Loop-Node, wenn du dessen aggregierte Ergebnisse nicht benötigst.

Nächste Schritte

Agent

Verwende KI für intelligente Verarbeitung

HTTP Request

Hole externe Daten ab

Datenanalyse

Analysiere Daten mit einem Agent