Первый результат в n8n

Данные между узлами: items, JSON и expressions

Содержание курса

Expression: синтаксис и обращение к полям текущего item

Когда нужно не просто передать item дальше, а взять конкретное поле и подставить его значение куда-то — в имя файла, в текст сообщения, в параметр запроса — используют expression. Expression — это шаблонная строка, которая вычисляется в момент запуска узла. Синтаксис простой: всё, что написано между {{ и }}, n8n интерпретирует как JavaScript-выражение, а не как текст.

Доступ к полям текущего item осуществляется через объект $json. Если item выглядит так:

{
  "json": {
    "firstName": "Анна",
    "priority": "Срочно",
    "amount": 4200
  }
}

то обратиться к полю priority можно так:

{{ $json.priority }}

Это выражение вернёт строку 'Срочно'. Аналогично {{ $json.amount }} вернёт число 4200.

Expression вводится прямо в поле значения любого параметра узла. По умолчанию поле работает в режиме статического текста. Чтобы переключить его в режим expression, нужно нажать иконку молнии (⚡) справа от поля — после этого n8n начнёт вычислять содержимое как выражение, а не воспринимать его дословно.

Важно понимать разницу между статическим текстом и expression:

  • Статический текст: поле содержит Срочно — в Output будет 'Срочно' для всех items без исключения.
  • Expression: поле содержит {{ $json.priority }} — в Output будет то значение поля priority, которое пришло в конкретном item.

Если у вас на входе три items с разными значениями priority, expression вернёт три разных значения. Статический текст вернёт одно и то же три раза.

Кроме $json, в expressions есть и другие объекты. Один из них — $('NodeName').item.json.field — позволяет обратиться не к текущему item, а к данным конкретного узла по его имени. Это удобно, когда нужно «дотянуться» до данных, которые были в узле выше по цепочке, но не дошли до текущего напрямую. Однако в большинстве повседневных случаев достаточно $json.

Expression — это JavaScript, поэтому он чувствителен к регистру и точному написанию ключей. $json.Priority и $json.priority — это два разных обращения. Точное написание ключей критично — в следующих разделах разберём, что происходит, если допустить опечатку или забыть фигурные скобки.