Sparround

Code node: kod nə vaxt lazımdır

Code node workflow-un içində JavaScript (və ya Python) icra edir. n8n-in "low-code" olmasının mənası da budur: hazır node-lar bitəndə çıxış yolu var.

Ən vacib parametr rejimdir və iki variantı var:

  • Run Once for All Items (standart) — kod bir dəfə işləyir, gələn item-lərin hamısına birlikdə çıxışı var. Qruplaşdırma, ümumi hesablama, item sayını dəyişmək üçün.
  • Run Once for Each Item — kod hər item üçün ayrıca işləyir. Sadə çevirmələr üçün daha oxunaqlıdır və $json burada cari item-i verir.

Kod nəticəni item strukturunda qaytarmalıdır. Yaxşı xəbər: Code node-da json açarını və massiv sarğısını unutsan, n8n onları özü əlavə edir.

javascript
// Rejim / Mode: Run Once for All Items
// Bütün item-lərə çıxış var / access to every item at once

const items = $input.all();

// Regionlara görə qruplaşdır / group by region
const byRegion = {};
for (const item of items) {
  const region = item.json.region ?? 'unknown';
  byRegion[region] ??= { region, total: 0, count: 0 };
  byRegion[region].total += Number(item.json.amount) || 0;
  byRegion[region].count += 1;
}

// Hər qrup üçün bir item qaytar / return one item per group
return Object.values(byRegion).map((row) => ({ json: row }));

"Run Once for All Items" rejimi: giriş 500 item, çıxış qrup sayı qədər item.

javascript
// Rejim / Mode: Run Once for Each Item
// $json cari item-in datasıdır / $json is the current item's data

const raw = $json.phone ?? '';
const digits = raw.replace(/\D/g, '');

return {
  json: {
    ...$json,
    phoneNormalized: digits.startsWith('994') ? `+${digits}` : `+994${digits}`,
    isValid: digits.length >= 9,
  },
};

"Run Once for Each Item" rejimi: hər item üçün ayrıca işləyir, item sayı dəyişmir.

MəhdudiyyətNə etmək lazımdır
Fayl sisteminə çıxış yoxdurRead/Write Files from Disk node-unu işlət
HTTP sorğusu göndərmək olmurHTTP Request node-unu işlət
n8n Cloud-da xarici npm modulu import etmək olmurHazır gələn `crypto` və `moment` modullarından istifadə et; self-hosted-də konfiqurasiya ilə açmaq olar
`$binary`, `$if()`, `$jmespath()` Code node-da yoxdurBunlar yalnız expression redaktorundadır
Bəzi Luxon metodlarının imzası fərqlidirSənədləşmədə "custom n8n functionality" işarəsinə bax, native qarşılığını işlət

Python haqqında. n8n 1.111.0-dan etibarən task runner-lər vasitəsilə native Python dəstəyi əlavə olunub və n8n 2-də stabil sayılır. Köhnə Pyodide əsaslı dəstək isə n8n 2-də artıq mövcud deyil. Native Python-da yalnız _items (bütün item-lər rejimi) və _item (hər item rejimi) dəstəklənir, digər n8n dəyişənləri isə yoxdur; həmçinin nöqtə ilə deyil, item["json"]["field"] şəklində müraciət tələb olunur. Praktik nəticə: n8n-də JavaScript daha geniş imkanlıdır.

📚 Mənbələr və sənədlər