Все ноды/Data/Code
JavaScript-код
Выполняет тело async function call(input, …) { … } на JavaScript в Deno Worker (это JS, НЕ Python: никаких import/`:`/elif; используйте JSON.parse, ===, .map). Данные на run → первый аргумент input. Доп. порты → параметры call. Сеть: только явно разрешённые хосты. ⚠️ DEV-only.
Тип в графе: code_javascript
Exec
Можно включить ветку ошибки (expose_error_output) и обработать сбой отдельным путём.
Порты можно разделить на исполнение и данные (split ports).
Как попробовать
Минимальный рабочий воркфлоу
- Исполнение + данные
Запускается сразу
Как применять
Берите эту ноду, когда преобразование не выражается готовыми нодами данных.
Склеить строку умеет 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 | — |
Настройки
| Поле | Тип | По умолчанию | Описание |
|---|---|---|---|
Кодcode | string | return input; | Только тело функции (сигнатура и скобки показаны в редакторе только для чтения). Раннер оборачивает это как async call(input, …); дополнительные входные порты становятся параметрами. Не должно быть пустым — пустое тело всё равно оплачивается как запуск песочницы и возвращает null. |
Разрешённые хостыnet_allow | array<string> | — | Необязательный ограничивающий allowlist имён хостов для исходящих HTTP-запросов. Если пусто, доступны все публичные хосты. Приватные/loopback IP всегда заблокированы. |
Общие поля
Эти три поля есть у каждой ноды: платформа добавляет их сама, а не автор ноды.
expose_error_output— Если включено, показывает выход выполнения для подключения нод, которые запускаются при сбое этого шага.split_ports_in— Показывать отдельные порты входа для выполнения и данных вместо одного объединённого.split_ports_out— Показывать отдельные порты выхода для выполнения и данных вместо одного объединённого.