فصلِ 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

n8n روی رشته، عدد، آرایه و تاریخ توابعِ کمکیِ فراوان دارد (مثلِ .toDateTime()، .isEmpty()، .first()). موقعِ تایپ داخلِ {{ }} لیستِ پیشنهادها را ببین — سریع‌ترین راهِ کشفشان است.

۴

کِی اکسپرشن، کِی نودِ کد

اکسپرشن برای منطقِ کوتاهِ تک‌خطی عالی است. وقتی منطق چند مرحله‌ای شد، حلقه و شرطِ پیچیده خواست، یا باید چند آیتم را با هم بسازی — برو سراغِ نودِ Code (فصلِ ۵). مرزِ درست: اگر اکسپرشنت به سه خط رسید، احتمالاً باید نودِ کد باشد.