JavaScript
Описание
Узел создает новый набор данных с заданным составом и параметрами полей и заполняет его данными в ходе выполнения кода JavaScript. Для заполнения выходного набора в коде возможно использование данных входных портов. Состав и параметры полей выходного набора могут задаваться как в мастере настройки узла, так и из кода JavaScript.
Вход
- Входной источник данных (таблица данных), необязательный;
- Добавить еще один порт – создает новый порт Входной источник данных[N], где N – порядковый номер порта;
- Входные переменные (переменные), необязательный.
Выход
- Выходной набор данных (таблица данных).
Мастер настройки
Последовательно выполняются следующие этапы настройки:
- Настройка столбцов выходной таблицы;
- JavaScript.
Настройка столбцов выходной таблицы
Столбцы выходного набора можно задать как на странице Настройка столбцов выходной таблицы JavaScript мастера, так и динамически, в ходе исполнения кода JavaScript. При установке флага Разрешить формировать выходные столбцы из кода доступно динамическое создание, изменение и удаление выходных столбцов.
Примечание: Динамическое создание, изменение и удаление выходных столбцов возможно в коде до момента добавления первой записи в выходной набор, т.е. до первого вызова метода Append() объекта
OutputTable
.
JavaScript
Страница JavaScript содержит редактор исполняемого узлом кода. По кнопке Предпросмотр… в отдельном окне выводится до 100 первых строк результирующего набора данных и консоль отладки кода.
Примечание: При нажатии на кнопку Предпросмотра активируются все входные порты. При успешном завершении активации открывается окно Предпросмотра.
Важно: Отсутствует поддержка
Atomics.xx
в JavaScript под Linux. Для реализации ожидания используетсяsetTimeout
.
Поддерживается импорт внешних модулей JS.
См. также: Горячие клавиши редактора кода
Доступ из кода JavaScript к данным портов и другим встроенным объектам
Для доступа к данным портов и другим встроенным объектам в контексте выполнения JavaScript-кода предусмотрены следующие объекты:
- Входные наборы данных (
InputTables
,InputTable
); - Входные переменные (
InputVariables
); - Выходной набор данных (
OutputTable
); - Необходимые перечисления (
DataType
,DataKind
,UsageType
).
Вышеуказанные объекты импортируются из встроенного модуля "builtIn/Data"
. По умолчанию в текст исполняемого узлом кода добавляется строка импорта этих объектов.
В контексте выполнения JavaScript-кода доступны функции Калькулятора, которые импортируются из встроенного модуля "builtIn/Calc"
.
Fetch API
В контексте выполнения JavaScript-кода доступны объекты интерфейса Fetch API, предназначенные для работы с HTTP-запросами и ответами. Перед использованием объекты должны быть импортированы из встроенного модуля "builtIn/Fetch"
.
File Storage API
В контексте выполнения JavaScript-кода доступны объекты интерфейса File Storage API, предназначенные для работы с файловой системой. Перед использованием объекты должны быть импортированы из встроенного модуля "builtIn/FS"
.
Обработка ошибок
При вызове окна Предпросмотра или выполнении узла выводится сообщение об обнаруженных синтаксических ошибках и ошибках хода выполнения с указанием позиции кода, содержащего ошибку.
Важно: Неперехваченные ошибки в Promise записываются в лог сервера, при этом узел выполняется без сообщений об ошибке.
Статьи в разделе: