В этой главе собраны практические примеры и рекомендации, показывающие, как использовать выражения для работы с данными в Нейро42.
Python поддерживается только в Code node. В выражениях Python использовать нельзя.
Проверка входных данных
Иногда нужно проверить входящие данные. Если они не соответствуют условию, можно вернуть значение по умолчанию.
Например, если нужно проверить, пустая ли переменная от предыдущего узла, и вернуть строку «not found», используйте тернарный оператор:
{{$json[«variable_name»] ? $json[«variable_name»] : «not found»}}
- $json[«variable_name»] — значение переменной
- «not found» — возвращаемое значение, если переменная пустая
В качестве альтернативы можно использовать nullish coalescing operator (??) https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Nullish_coalescing или логический оператор OR (||): https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Logical_OR
{{ $x ?? «default value» }}
{{ $x || «default value» }}
В обоих случаях будет использовано значение $x, если оно не null, не неопределенное и не ложное. Иначе возвращается значение по умолчанию.
Частые ошибки при работе с выражениями
“The ‘JSON Output’ в пункте 0 содержит недействительный JSON”
Ошибка возникает, если в JSON-режиме передан некорректный JSON.
Возможные причины:
- JSON некорректен по синтаксису
- Ссылка на несуществующие поля входных данных
Решение:
- Проверить JSON через валидатор
- Убедиться, что все поля существуют в входных данных
“Не удается получить данные для выражения”
Ошибка появляется, когда выражение ссылается на данные, которые еще не были созданы предыдущим узлом.
Варианты ошибки:
Указанный узел не выполнен
Пример сообщения:
Выражение ссылается на узел ‘<node-name>’, но оно еще не было выполнено.
Решение:
- Убедиться, что узел, на который идет ссылка, уже выполнен
- В Code node можно проверить выполнение предыдущего узла:
$(«<node-name>»).isExecuted
Пример:
{
«my_field_1»: {{ $input.params }}
}
Если узел не подключен, при тесте появится ошибка.
“Недопустимый синтаксис”
Ошибка возникает, если выражение содержит синтаксическую ошибку.
Пример неверного выражения:
{
«my_field_1»: «value»,
«my_field_2»: {{ $(‘If’).item.json. }}
}
Решение:
- Проверить выражение на наличие лишних символов
- Убедиться, что синтаксис соответствует формату JSON и выражений в Нейро42