В этом разделе приведены практические примеры и рекомендации использования Code node для работы с данными в Нейро42.
Связанные ресурсы:
Получение количества элементов от предыдущего узла
Чтобы узнать, сколько элементов вернул предыдущий узел, можно использовать следующий код:
// JavaScript
if (Object.keys(items[0].json).length === 0) {
return [
{ json: { results: 0 } }
];
}
return [
{ json: { results: items.length } }
];
# Python
if len(items[0].json) == 0:
return [{«json»: {«results»: 0}}]
return [{«json»: {«results»: len(items)}}]
Пример вывода:
[
{ «results»: 8 }
]
Работа с бинарными данными
Бинарный буфер содержит все файлы и бинарные данные, обработанные в воркфлоу.
Его используют для:
- Манипуляций с данными (например, добавление заголовков в CSV)
- Вычислений (например, создание хэш-суммы файла)
- Сложных HTTP-запросов (например, загрузка файла + отправка других данных)
Не поддерживается в Python
Использование getBinaryDataBuffer()
/*
* itemIndex: индекс элемента во входных данных
* binaryPropertyName: имя бинарного свойства
* По умолчанию для узлов Read/Write File From Disk имя ‘data’
*/
let binaryDataBufferItem = await this.helpers.getBinaryDataBuffer(itemIndex, binaryPropertyName);
Пример:
let binaryDataBufferItem = await this.helpers.getBinaryDataBuffer(0, ‘data’);
// Возвращает данные бинарного буфера для первого элемента
Всегда используйте getBinaryDataBuffer(), не обращайтесь напрямую к items[0].binary.data.data.
Вывод в консоль браузера
Для отладки можно использовать:
- JavaScript: console.log()
- Python: print()
Пример JavaScript
let a = «apple»;
console.log(a);
Пример Python
a = «apple»
print(a)
Обработка [object Object] в консоли
Если выводится [object Object], значит данные имеют сложный тип. Нужно проверить тип и при необходимости преобразовать:
print(type(myData))
Если вывод:
<class ‘pyodide.ffi.JsProxy’>
То данные нужно преобразовать в нативный Python объект с помощью to_py(). Пример:
previousNodeData = _(«<node-name>»).all()
for item in previousNodeData:
# item имеет тип JsProxy
itemDict = item.json.to_py()
print(itemDict)
Используется при работе с данными, возвращаемыми узлами Нейро42.
Подробнее о JsProxy см. в документации Pyodide.