Global Side Menu Width Placeholder

محتوى المقالة

مقدمة

لو بتشتغل على أي node في n8n وحسيت إن الـ nodes الجاهزة مش كفاية لحاجة معينة عايز تعملها، غالبًا الحل هيكون Code Node في N8N. في المقال ده هنشرح يعني إيه بالظبط، وإزاي تكتب أول كود فيه، ونمشي خطوة بخطوة بأمثلة حقيقية.

Code Node في N8N يعني إيه وليه هتحتاجه في الأتمتة

Code Node في n8n هو node بيسمحلك تكتب كود جافاسكريبت (أو Python) جوه الـ workflow نفسه عشان تعدل، تفلتر، أو تحول البيانات بطريقة مش متاحة في الـ nodes الجاهزة. يعني بدل ما تدور على node جاهز يعمل اللي انت عايزه بالظبط، بتكتب الكود بنفسك وتتحكم في كل حاجة.

بتحتاجه في حالات زي: عملية حسابية معقدة، تحويل شكل البيانات (data transformation) بين node وتاني، أو لما تيجي تتعامل مع array كبير محتاج تلوب عليه وتعمل عليه منطق خاص.

إيه الفرق بين Code Node والـ Node العادي في N8N

الفرق الأساسي إن الـ node العادي بيديك واجهة جاهزة بحقول تملاها، أما Code Node بيديك شاشة فاضية تكتب فيها كود زي ما انت عايز. يعني لو عايز تبعت إيميل، هتستخدم node جاهز اسمه Gmail مثلًا، لكن لو عايز تعمل معالجة مخصصة للبيانات قبل ما تبعتها، هنا Code Node بييجي دوره.

الميزة الكبيرة إن Code Node بيديك مرونة كاملة، لكن العيب إنه محتاج منك تعرف جافاسكريبت ولو بشكل بسيط. الـ nodes العادية أسهل للمبتدئين لكنها محدودة بالخيارات اللي حاطينهالك.

امتى تستخدم Code Node بدل Function Node القديم

تستخدم Code Node دايمًا بدل الـ Function Node القديم لأن n8n نفسها بقت بتعتبره الخيار الرسمي والمطوَّر حاليًا. الـ Function Node كان موجود في النسخ القديمة، لكن Code Node جه بديل أحدث وبيدعم كتابة كود يتعامل مع items متعددة في نفس الوقت بسهولة أكتر.

Code Node في N8N

لو لسه شغال على نسخة قديمة من n8n وشايف Function Node، يفضل تتعلم تستخدم Code Node من الأول عشان workflows بتاعتك تفضل متوافقة مع التحديثات الجديدة.

ازاي تكتب أول كود جافاسكريبت جوه Code Node

أول خطوة إنك تفهم إن Code Node بياخد items جاية من node قبله، وبيطلب منك ترجع items بنفس الشكل. أبسط مثال: لو عايز تضيف حقل جديد اسمه status لكل item، هتكتب:

for (const item of items) { item.json.status = ‘done’; } return items;

الغلطة الشائعة عند المبتدئين إنهم بينسوا يرجعوا الـ items في الآخر بـ return، فيطلع error غريب أو الـ workflow يوقف فجأة. الطريقة الصح دايمًا تتأكد إن آخر سطر في الكود هو return items (أو return الـ array اللي عدلت عليه)، لأن n8n مش هيكمل من غير كده.

ازاي تستخدم الـ Expressions جوه Code Node بذكاء

تقدر تستخدم الـ expressions بتاعة n8n جوه Code Node عن طريق الوصول لبيانات الـ nodes اللي قبله مباشرة من الكود بدل ما تكتبها يدوي. مثلًا تقدر تجيب قيمة من node سابق بالكود زي: $(‘Node Name’).first().json.fieldName.

الفايدة هنا إنك بتدمج بين قوة الـ expressions وقوة الكود في نفس الوقت، فبدل ما تكرر نفس القيمة في أكتر من مكان، بتسحبها مباشرة من مصدرها جوه الكود نفسه، وده بيوفر وقت ويقلل الأخطاء.

أمثلة عملية لاستخدام Code Node في مشاريع حقيقية

فيه مواقف كتير بتستخدم فيها Code Node في workflows حقيقية، منها:

  • تنظيف بيانات جاية من API فيها حروف زيادة أو تنسيق غلط قبل ما تتبعت لقاعدة بيانات.
  • دمج نتايج أكتر من API في object واحد منظم قبل ما يتبعت لـ Google Sheets.
  • عمل شرط معقد (if/else متداخل) صعب تعمله بالـ IF node العادي.
  • تحويل تاريخ من صيغة لصيغة تانية باستخدام دوال جافاسكريبت الجاهزة.

لو بتبني workflows فيها تكامل مع أدوات AI، ممكن تحتاج Code Node عشان تجهز الـ prompt أو تفلتر رد الـ LLM قبل ما يتبعت للخطوة اللي بعدها. تقدر تشوف توثيق n8n الرسمي على n8n docs لمزيد من التفاصيل التقنية.

لو عايز تتعلم الأتمتة والـ AI بشكل عملي وتبني workflows زي دي من الصفر، تقدر تبدأ من كورسات الأتمتة والذكاء الاصطناعي في AI Mentor.

الأسئلة الشائعة

هل لازم أعرف جافاسكريبت كويس عشان أستخدم Code Node؟
مش لازم تكون خبير، بس لازم تعرف الأساسيات زي loops والـ if/else والتعامل مع arrays. ده كفاية تبدأ بيه وتتطور مع الوقت.
هل Code Node في N8N بيدعم Python؟
أيوه، n8n بتدعم كتابة الكود بـ Python جنب الجافاسكريبت في بعض الإصدارات، لكن جافاسكريبت هي الأكتر استخدامًا والأسهل في التوافق مع باقي الـ nodes.
إيه الفرق بين Run Once for All Items و Run Once for Each Item؟
الأول بيشغل الكود مرة واحدة على كل الـ items مع بعض، والتاني بيشغله لكل item لوحده. اختيارك بيعتمد على نوع المعالجة اللي محتاجها.

ملخص المقالة

في الآخر، Code Node في N8N هو أداتك لما الـ nodes الجاهزة ميبقاش كافية، وبيديك تحكم كامل في البيانات عن طريق كود جافاسكريبت بسيط. اتعلمت إزاي تكتبه، تستخدم الـ expressions جواه، وشفت أمثلة عملية من مشاريع حقيقية ممكن تطبقها على طول.

مقالات ذات صلة