Выражения

В этой главе собраны практические примеры и рекомендации, показывающие, как использовать выражения для работы с данными в Нейро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

Предупреждение о применении иностранного языка

Настоящий мануал включает иностранные термины и выражения, оставленные в оригинале ввиду специфики предметной области и сложности однозначного перевода на русский язык. Данные элементы используются исключительно в целях повышения точности и ясности изложенного материала, поскольку точные аналоги на русском языке либо отсутствуют, либо существенно усложняют восприятие информации пользователями-профессионалами.

Техническая документация не является информацией для широкого круга потребителей. Документация предназначена исключительно для специализированных целей и рассчитана на аудиторию профессионалов, обладающих соответствующей квалификацией и знанием отраслевых стандартов и терминологии. Использование иностранной лексики согласуется с положениями действующего российского законодательства, регулирующего употребление иностранных слов в специальных материалах, направленных на профессиональных пользователей

Данная мера принята для минимизации рисков неправильного толкования ключевых понятий и предотвращения негативных последствий, связанных с некорректностью переводов сложных технических терминов и выражений.

Мы обращаем внимание на тот факт, что наличие иностранного языка в данной документации обусловлено профессиональной необходимостью и соответствует установленным нормам и правилам использования специализированной литературы и документации в Российской Федерации.

Свяжитесь с нами

Спасибо, получили вашу заявку!
Скоро мы с вами свяжемся.

А пока посмотрите реализованные проекты, которыми мы поделились на сайте.