Skip to main content

Вкладка Script в настройках ноды

Вкладка Script предназначена для размещения кода JavaScript, отвечающего за программную логику ноды. Здесь вы определяете, что именно делает ваша нода - обрабатывает ли она текст, вызывает API, трансформирует данные или выполняет вычисления.

Интерфейс вкладки Script

Структура кода

Все ноды Piper, включая кастомные, следуют определенной структуре JavaScript:

export async function run({ inputs }) {
const { FatalError, NextNode } = DEFINITIONS;

// Ваш код здесь

return NextNode.from({
outputs: {
// Ваши результаты
}
});
}

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

Оригинальный код Input Text

Базовая нода Input Text имеет эту простую структуру:

export async function run({ inputs }) {
const { FatalError, NextNode } = DEFINITIONS;

const text = inputs.input_text;

return NextNode.from({
outputs: {
output_text: text
}
});
}

Кастомный код Merge Text to JSON

Нам нужно заменить это логикой, которая обрабатывает несколько строковых входов и создает JSON массив:

export async function run({ inputs }) {
const { FatalError, NextNode } = DEFINITIONS;

const jsonArray = [];

if (inputs.string1) {
jsonArray.push(inputs.string1);
}
if (inputs.string2) {
jsonArray.push(inputs.string2);
}
if (inputs.string3) {
jsonArray.push(inputs.string3);
}
if (inputs.string4) {
jsonArray.push(inputs.string4);
}

return NextNode.from({
outputs: {
json_output: jsonArray
}
});
}

Понимание кастомной логики

Кастомный скрипт реализует следующую логику:

  1. Инициализация пустого массива - const jsonArray = [] создает пустой массив для хранения наших текстовых строк
  2. Проверка каждого входа - Условия if проверяют, что каждый вход имеет значение перед добавлением
  3. Построение массива - Только непустые входы добавляются в jsonArray с помощью push()
  4. Возврат JSON выхода - Финальный массив возвращается как json_output, соответствуя нашей конфигурации во вкладке Design

Этот подход гарантирует, что:

  • Пустые или неопределенные входы игнорируются
  • Только валидные текстовые строки включаются в финальный JSON массив
  • Формат выхода соответствует JSON типу, который мы определили во вкладке Design

Типы выполнения

Выберите подходящий тип выполнения в зависимости от того, сколько времени требуется вашей ноде для работы:

ТипВремяОписание
Rapid0-20 secБыстрые операции
Regular21-60 secСтандартная обработка
Deferred60-120 secСложные операции
Protracted120-300 secТяжелые задачи обработки

Для нашей ноды Merge text to JSON подходит выполнение Rapid, поскольку мы только манипулируем текстовыми строками и нет обращений к стороннему сервису по API.

Сохранение изменений

Всегда сохраняйте изменения в скрипте, нажимая кнопку Save внизу интерфейса. Любые изменения в коде следует сохранять по нажатию клавиши Save внизу интерфейса.

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