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ə
$jsonburada 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.
// 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.
// 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ət | Nə etmək lazımdır |
|---|---|
| Fayl sisteminə çıxış yoxdur | Read/Write Files from Disk node-unu işlət |
| HTTP sorğusu göndərmək olmur | HTTP Request node-unu işlət |
| n8n Cloud-da xarici npm modulu import etmək olmur | Hazı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 yoxdur | Bunlar yalnız expression redaktorundadır |
| Bəzi Luxon metodlarının imzası fərqlidir | Sə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
- Code node-dan istifadərəsmidocs.n8n.io
Rejimlər, məhdudiyyətlər və Python dəstəyinin rəsmi mənbəyi.
- Code node üçün nümunələr (Cookbook)rəsmidocs.n8n.io
- Code node — tipik problemlərrəsmidocs.n8n.io