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 zeigen wie hier.
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: Node-Name oder Feldname stimmt nicht.
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] | Feld oder Node gibt es nicht | Schreibweise prüfen, im Schema nachsehen, Node-Namen aus n8n kopieren |
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“ |
| „No node called …“ | Node-Name in $('…') stimmt nicht | Name inklusive Leerzeichen und Groß-/Kleinschreibung aus dem Node kopieren |