Expression-Baukasten
Die Formeln in den geschweiften Klammern bestehen aus drei Teilen: woher, welches Feld, was damit. Hier klickst du die drei Teile zusammen. Der Baukasten schreibt die Formel, erklärt sie in Worten und rechnet sie mit deinen Beispieldaten vor.
Ein Kurs von Erik Lorenscheit, Gründer von hilfmirmal · Zuletzt aktualisiert am
Baukasten
Faustregel: Direkt hinter dem Node, aus dem der Wert kommt, reicht $json. Hinter einem If oder Switch nimmst du den Node-Namen, dann ist es egal, was dazwischen liegt.
Verschachtelt geht mit Punkt: body.absender. Ein Eintrag aus einer Liste mit eckiger Klammer, gezählt ab 0: products[0].title.
In n8n: Feld anklicken, Schalter oben rechts im Feld auf Expression, Formel einfügen. Die Vorschau unter dem Feld muss dasselbe Ergebnis zeigen wie hier: Text ohne Anführungszeichen, eine Liste als [Array: …], ein fehlendes Feld als [undefined]. Einen falschen Node-Namen erkennt der Baukasten nicht, er rechnet immer mit den Beispieldaten. n8n meldet dann „Referenced node doesn't exist“.
Rezepte aus dem Kurs
Ein Klick stellt den Baukasten passend ein. Danach kannst du jeden Teil ändern.
Kurze Lektion: Expressions in fünf Schritten
1 · Klammern
Alles zwischen {{ und }} rechnet n8n beim Lauf aus. Ohne Klammern ist es Text. betrag ist das Wort betrag, {{ $json.betrag }} ist der Wert 89.
2 · Woher
$json ist das Item, das gerade durch den Node läuft. $('Anforderung').item.json ist das zugehörige Item eines früheren Nodes, egal was dazwischen passiert ist. Nodes sprechend benennen, dann liest sich die Formel wie ein Satz.
3 · Welches Feld
Punkt, dann der Feldname genau so, wie er im Schema steht. Verschachtelt: noch ein Punkt. Liste: eckige Klammer mit Nummer ab 0. Leerzeichen im Namen: ['Betrag in Euro'].
4 · Was damit
Drei Sorten. Vergleichen liefert true oder false: < 100, === 'IT'. Rechnen liefert eine Zahl: * 1.19. Zusammensetzen liefert Text: + ' Euro'. Dazu die Frageform: Bedingung ? dann : sonst.
5 · Prüfen
Unter jedem Expression-Feld zeigt n8n die Vorschau mit echten Daten. Erst weitermachen, wenn dort das Richtige steht. [undefined] heißt: Das Feld gibt es so nicht. Stimmt der Node-Name in $('…') nicht, meldet n8n einen Fehler: „Referenced node doesn't exist“.
Ohne Tippen
Zwei Wege: Ein Feld aus dem Schema links mit der Maus ins Value-Feld ziehen, n8n schreibt {{ $json.feld }} selbst. Oder hier zusammenklicken und kopieren.
Fehler lesen
| Du siehst | Heißt | Tu das |
|---|---|---|
[undefined] | Das Feld gibt es so nicht | Schreibweise prüfen, im Schema nachsehen, Feld aus dem Input ziehen statt tippen |
NaN | Es wurde mit Text gerechnet | Vorher Number(), danach mit Number.isFinite() prüfen |
[Object: ...] | Du zeigst auf einen ganzen Datensatz statt auf ein Feld | Noch einen Punkt und den Feldnamen anhängen |
[Array: ...] | Du zeigst auf eine Liste | [0] für den ersten Eintrag, .length für die Anzahl, .join(', ') für einen Text |
| „Cannot read properties of undefined“ | Eine Ebene davor fehlt schon | Pfad von vorne aufbauen: erst $json, dann $json.body, dann $json.body.absender |
| Es kommt Text statt Zahl | Formulare und Webhooks liefern Text | Rezept „Formular: Text in Zahl“ |
| „Referenced node doesn't exist“ | Node-Name in $('…') stimmt nicht | Name inklusive Leerzeichen und Groß-/Kleinschreibung aus dem Node kopieren |