Все ноды/Data/Code

JavaScript-код

Выполняет тело async function call(input, …) { … } на JavaScript в Deno Worker (это JS, НЕ Python: никаких import/`:`/elif; используйте JSON.parse, ===, .map). Данные на run → первый аргумент input. Доп. порты → параметры call. Сеть: только явно разрешённые хосты. ⚠️ DEV-only.

JavaScript-код
RunSuccess

Тип в графе: code_javascript

Exec

Можно включить ветку ошибки (expose_error_output) и обработать сбой отдельным путём.

Порты можно разделить на исполнение и данные (split ports).

Как попробовать

Минимальный рабочий воркфлоу

Вход
JavaScript-код
Выход
  • Исполнение + данные
Нажмите «Скопировать ноды», откройте редактор и нажмите Ctrl+V на холсте.

Запускается сразу

Как применять

Берите эту ноду, когда преобразование не выражается готовыми нодами данных. Склеить строку умеет template, достать поле из JSON — json_set и json_filter_map, посчитать — math_op, разветвить — if и switch, пройтись по списку — map и filter. Код нужен там, где начинается своя логика: разбор нестандартного формата, цикл с накоплением, пересборка ответа стороннего API в удобную структуру. Простую подстановку в текст на код переводить не стоит — шаблон читается лучше и не упирается в лимиты песочницы.

Как это работает

Вы пишете тело функции async function call(input, …) { … } — сигнатуру редактор показывает сам и менять её нельзя. Значение, пришедшее на порт Run, становится аргументом input; то, что вы вернули через return, уходит на выход Success и читается дальше как {{ nodes.<id>.output }}.

Дополнительные аргументы добавляются портами: вкладка Входы → секция Custom Inputs. Имя порта становится именем параметра, поэтому оно обязано быть идентификатором (латиница, цифры, подчёркивание, начинается с буквы) и не может совпадать с input, run, nodes, inputs, variables, loop.

Внутри доступны две функции для переменных воркфлоу: get_var("name") и set_var("name", value). Обе синхронные и работают только с переменными, объявленными нодами var в этом же воркфлоу — неизвестное имя бросает ошибку. Записанные значения сохраняются только после успешного завершения кода.

console.log, console.warn и console.error попадают в лог запуска — это основной способ отладки.

Сеть по умолчанию открыта на публичные адреса, приватные и loopback заблокированы всегда. Поле Разрешённые хосты сужает выход до перечисленных имён. По умолчанию у кода есть 5 секунд и 128 МБ памяти; тариф может опустить эти значения, поднять — нет. Размер кода ограничен 64 КиБ.

Частые ошибки

  • В ноду ведёт только exec-ребро. Тогда input === null: значение переносит ребро данных, подключённое к порту Run.
  • Синтаксис Python. Это Deno JS: нет import, нет npm-пакетов, нет elif и двоеточий. Используйте JSON.parse, ===, .map.
  • Возврат объекта, не переживающего JSON. Результат сериализуется в JSON, поэтому Map, Set и функции доедут пустыми — возвращайте обычные объекты и массивы.
  • Обращение к переменной, которой нет в графе. get_var требует ноду var с таким именем.
  • Ожидание, что упавший прогон бесплатен. Песочница отработала, и прогон тарифицируется независимо от исхода — включая таймаут и пустое тело.

Входы

ПортПроводДанныеПримечания
RunrunИсполнение + данныеexecute_data

Выходы

ПортПроводДанныеПримечания
SuccesssuccessИсполнение + данныеexecute_data

Настройки

ПолеТипПо умолчаниюОписание
Кодcodestringreturn input;

Только тело функции (сигнатура и скобки показаны в редакторе только для чтения). Раннер оборачивает это как async call(input, …); дополнительные входные порты становятся параметрами. Не должно быть пустым — пустое тело всё равно оплачивается как запуск песочницы и возвращает null.

Разрешённые хостыnet_allowarray<string>

Необязательный ограничивающий allowlist имён хостов для исходящих HTTP-запросов. Если пусто, доступны все публичные хосты. Приватные/loopback IP всегда заблокированы.

Общие поля

Эти три поля есть у каждой ноды: платформа добавляет их сама, а не автор ноды.

  • expose_error_output — Если включено, показывает выход выполнения для подключения нод, которые запускаются при сбое этого шага.
  • split_ports_in — Показывать отдельные порты входа для выполнения и данных вместо одного объединённого.
  • split_ports_out — Показывать отдельные порты выхода для выполнения и данных вместо одного объединённого.