فصلِ 4
هر فیلدی در n8n میتواند بهجای مقدارِ ثابت، یک عبارتِ زنده باشد. اینجا زبانش را یاد میگیری.
هر جا دکمهٔ کوچک به حالتِ اکسپرشن سوییچ کند، داخلِ {{ }} کد مینویسی.
داخلِ دو آکولاد، JavaScript مینویسی. مهمترین متغیرها:
| متغیر | معنی |
|---|---|
$json | دادهٔ jsonِ آیتمِ فعلی از نودِ قبلی |
$json.email | فیلدِ email از همان آیتم |
$('Node Name').item.json.x | فیلدِ x از نودی دیگر (آیتمِ متناظر) |
$now | زمانِ فعلی (شیءِ تاریخ) |
$itemIndex | شمارهٔ آیتمِ فعلی در آرایه |
$vars / $env | متغیرهای سراسری / محیطی |
// چند مثالِ واقعی
{{ $json.firstName + " " + $json.lastName }}
{{ $json.price * 1.09 }}
{{ $now.format("yyyy-MM-dd") }}اگر نامِ فیلد فاصله یا کاراکترِ خاص دارد، از براکت استفاده کن: $json["full name"]. برای دادهی تودرتو مسیر را زنجیر کن: $json.user.address.city. اگر ممکن است فیلد نباشد، با optional chaining از خطا جلوگیری کن: $json.user?.city.
کارهایی که ۹۰٪ اکسپرشنهایت همینها خواهند بود.
// شرطِ سهگانه
{{ $json.score > 50 ? "قبول" : "رد" }}
// مقدارِ پیشفرض وقتی خالی است
{{ $json.name || "ناشناس" }}
// توابعِ کمکیِ داخلی (n8n خیلی از اینها دارد)
{{ $json.email.toLowerCase() }}
{{ $json.tags.join(", ") }}n8n روی رشته، عدد، آرایه و تاریخ توابعِ کمکیِ فراوان دارد (مثلِ .toDateTime()، .isEmpty()، .first()). موقعِ تایپ داخلِ {{ }} لیستِ پیشنهادها را ببین — سریعترین راهِ کشفشان است.
اکسپرشن برای منطقِ کوتاهِ تکخطی عالی است. وقتی منطق چند مرحلهای شد، حلقه و شرطِ پیچیده خواست، یا باید چند آیتم را با هم بسازی — برو سراغِ نودِ Code (فصلِ ۵). مرزِ درست: اگر اکسپرشنت به سه خط رسید، احتمالاً باید نودِ کد باشد.