Данные между узлами: items, JSON и expressions
Содержание курса
Типичные ошибки: опечатка в имени поля и забытые фигурные скобки
Две ошибки в expressions встречаются чаще всего — и обе коварны тем, что не вызывают явного сбоя. Workflow выполняется, узел отрабатывает, Output появляется. Только данные в нём не те.
Ошибка 1: опечатка в имени ключа → пустое поле в Output
Предположим, входной item содержит поле priority, а в expression написано:
{{ $json.prioryty }}
Типичная опечатка — переставлена буква. n8n не выдаст ошибку выполнения, потому что с точки зрения JavaScript обращение к несуществующему ключу — это не исключение, а просто undefined.
Результат: поле в Output есть, но его значение пустое.
Симптом в Output: колонка присутствует, значение — пусто или отображается как -.
Диагностика: открываете панель Input предыдущего узла, переключаетесь в режим JSON и смотрите точное написание ключа — не «на глаз», а посимвольно. После этого исправляете expression.
// Было (ошибка)
{{ $json.prioryty }}
// Стало (правильно)
{{ $json.priority }}
Практический совет: если скопировать имя ключа прямо из JSON-режима панели Input (или использовать drag-and-drop), риск опечатки и ошибки регистра исчезает — n8n подставит точное написание за вас. Набор вручную оправдан только для простых и хорошо знакомых имён.
Ошибка 2: забытые фигурные скобки → строковый литерал вместо значения
Вторая ошибка выглядит так: вы вводите в поле значения:
$json.priority
...без {{ }}. Если поле при этом остаётся в режиме статического текста (иконка молнии не нажата), n8n не вычисляет ничего — он просто записывает это как строку.
Результат в Output: поле получает значение $json.priority — буквально эти символы, а не то, что в них подразумевалось.
Симптом в Output: значение поля — это дословно написанный текст expression, например $json.priority или {{ $json.priority }} (если скобки были, но режим не переключён).
Диагностика и исправление: проверяете, активен ли режим expression — рядом с полем должна гореть иконка ⚡. Если нет — нажимаете её. Либо убеждаетесь, что значение обёрнуто в {{ }}:
// Было (ошибка — статический текст)
$json.priority
// Стало (правильно — expression)
{{ $json.priority }}
Как читать Output, чтобы поймать обе ошибки
Оба сбоя диагностируются одним действием: смотрите в Output и задаёте себе два вопроса.
- Значение поля пустое? → скорее всего, опечатка в имени ключа. Идёте в JSON-режим Input и сверяете.
- Значение поля — это дословный текст expression? → поле работает в режиме статического текста. Переключаете в expression.
Оба случая лечатся за одно действие, как только поставлен правильный диагноз. Именно поэтому привычка проверять Output в JSON-режиме после каждого изменения экономит время: визуального взгляда на таблицу часто достаточно, чтобы сразу увидеть, что что-то пошло не так.
