Expressions
Синтаксис и возможности expressions в n8n
Синтаксис
Заголовок раздела «Синтаксис»Expressions заключаются в двойные фигурные скобки:
{{ выражение }}Доступ к данным
Заголовок раздела «Доступ к данным»Текущий item
Заголовок раздела «Текущий item»// Поле верхнего уровня{{ $json.name }}
// Вложенное поле{{ $json.user.email }}
// Поле с дефисом{{ $json["field-name"] }}
// Элемент массива{{ $json.items[0] }}Binary данные
Заголовок раздела «Binary данные»{{ $binary.data }}{{ $binary.data.fileName }}{{ $binary.data.mimeType }}{{ $binary.data.fileSize }}Данные из других нод
Заголовок раздела «Данные из других нод»// По имени ноды{{ $('HTTP Request').item.json.data }}
// Все items из ноды{{ $('HTTP Request').all() }}
// Первый item{{ $('HTTP Request').first().json }}
// Последний item{{ $('HTTP Request').last().json }}
// По индексу{{ $('HTTP Request').itemMatching(0).json }}Методы $input
Заголовок раздела «Методы $input»| Метод | Описание |
|---|---|
$input.all() | Все items |
$input.first() | Первый item |
$input.last() | Последний item |
$input.item | Текущий item (в Run Once for Each) |
Специальные переменные
Заголовок раздела «Специальные переменные»| Переменная | Описание | Пример |
|---|---|---|
$now | Текущее время (Luxon DateTime) | {{ $now.toISO() }} |
$today | Сегодня (начало дня) | {{ $today.toISO() }} |
$itemIndex | Индекс текущего item | {{ $itemIndex }} |
$runIndex | Номер итерации в цикле | {{ $runIndex }} |
$env | Переменные окружения | {{ $env.API_KEY }} |
$vars | Глобальные переменные | {{ $vars.BASE_URL }} |
$execution.id | ID выполнения | {{ $execution.id }} |
$workflow.id | ID workflow | {{ $workflow.id }} |
$workflow.name | Имя workflow | {{ $workflow.name }} |
Строковые методы
Заголовок раздела «Строковые методы»// Регистр{{ $json.name.toUpperCase() }} // "JOHN"{{ $json.name.toLowerCase() }} // "john"
// Обрезка{{ $json.text.trim() }} // Убрать пробелы{{ $json.text.substring(0, 10) }} // Первые 10 символов{{ $json.text.slice(-5) }} // Последние 5 символов
// Замена{{ $json.text.replace('old', 'new') }}{{ $json.text.replaceAll(' ', '_') }}
// Разделение{{ $json.text.split(',') }} // ['a', 'b', 'c']{{ $json.text.split(',')[0] }} // 'a'
// Поиск{{ $json.text.includes('search') }} // true/false{{ $json.text.startsWith('Hello') }}{{ $json.text.endsWith('!') }}{{ $json.text.indexOf('find') }} // Индекс или -1Числовые методы
Заголовок раздела «Числовые методы»// Округление{{ $json.price.toFixed(2) }} // "99.50"{{ Math.round($json.value) }} // 100{{ Math.floor($json.value) }} // 99{{ Math.ceil($json.value) }} // 100
// Математика{{ Math.abs($json.num) }} // Модуль{{ Math.max(1, 2, 3) }} // 3{{ Math.min(1, 2, 3) }} // 1{{ Math.random() }} // 0-1
// Преобразование{{ parseInt($json.str) }} // String → Integer{{ parseFloat($json.str) }} // String → Float{{ Number($json.str) }} // String → NumberМассивы
Заголовок раздела «Массивы»// Доступ{{ $json.items[0] }} // Первый элемент{{ $json.items.length }} // Длина
// Методы{{ $json.items.join(', ') }} // "a, b, c"{{ $json.items.includes('a') }} // true/false{{ $json.items.indexOf('b') }} // Индекс
// Трансформация (в Code Node){{ $json.items.map(i => i.name) }}{{ $json.items.filter(i => i.active) }}{{ $json.items.find(i => i.id === 1) }}{{ $json.items.sort((a, b) => a - b) }}Даты (Luxon)
Заголовок раздела «Даты (Luxon)»n8n использует Luxon для работы с датами.
Форматирование
Заголовок раздела «Форматирование»{{ $now.toFormat('dd.MM.yyyy') }} // "15.01.2025"{{ $now.toFormat('HH:mm:ss') }} // "14:30:00"{{ $now.toFormat('dd MMMM yyyy', { locale: 'ru' }) }} // "15 января 2025"{{ $now.toISO() }} // ISO формат{{ $now.toMillis() }} // TimestampАрифметика
Заголовок раздела «Арифметика»{{ $now.plus({ days: 1 }) }} // Завтра{{ $now.minus({ hours: 2 }) }} // 2 часа назад{{ $now.startOf('day') }} // Начало дня{{ $now.endOf('month') }} // Конец месяцаСравнение
Заголовок раздела «Сравнение»{{ $now > DateTime.fromISO($json.date) }}{{ $now.diff(DateTime.fromISO($json.date), 'days').days }}Timezone
Заголовок раздела «Timezone»{{ $now.setZone('Europe/Moscow').toFormat('HH:mm') }}Условная логика
Заголовок раздела «Условная логика»Тернарный оператор
Заголовок раздела «Тернарный оператор»{{ $json.status === 'active' ? 'Активен' : 'Неактивен' }}Nullish coalescing
Заголовок раздела «Nullish coalescing»{{ $json.name ?? 'Без имени' }} // Если null/undefined{{ $json.count || 0 }} // Если falsyOptional chaining
Заголовок раздела «Optional chaining»{{ $json.user?.address?.city }} // Безопасный доступ{{ $json.items?.[0]?.name }} // К элементу массиваJSON методы
Заголовок раздела «JSON методы»// Объект → Строка{{ JSON.stringify($json.data) }}{{ JSON.stringify($json.data, null, 2) }} // С форматированием
// Строка → Объект{{ JSON.parse($json.jsonString) }}Регулярные выражения
Заголовок раздела «Регулярные выражения»// Проверка{{ /^[a-z]+$/.test($json.value) }}
// Поиск{{ $json.text.match(/\d+/g) }} // Все числа
// Замена{{ $json.text.replace(/\s+/g, ' ') }} // Убрать лишние пробелыПримеры
Заголовок раздела «Примеры»Форматирование телефона
Заголовок раздела «Форматирование телефона»{{ $json.phone.replace(/[^\d]/g, '').replace(/^7/, '+7 ') }}Генерация ID
Заголовок раздела «Генерация ID»{{ `${$now.toMillis()}-${Math.random().toString(36).substr(2, 9)}` }}Безопасный доступ с default
Заголовок раздела «Безопасный доступ с default»{{ $json.user?.name || 'Anonymous' }}Форматирование цены
Заголовок раздела «Форматирование цены»{{ new Intl.NumberFormat('ru-RU', { style: 'currency', currency: 'RUB' }).format($json.price) }}Следующие шаги
Заголовок раздела «Следующие шаги»- Code Node — полноценное программирование
- Примеры — готовые решения
- Структура данных — формат данных