مشاريع Node-RED متوسطة التدفق

مبتدئ

image_pdf

استخدام عنصر السياق لمشاركة الدالة وجعلها في متناول جميع الدوال (Functions) في اللوحة :

في هذا المثال، نوضح كيفية استخدام عنصر السياق (Context) و عنصره العالمي (global) لمشاركة الباينات عبر عقد الـ function . استخدم المثال السابق لتخزين قيمة عددية. ومع ذلك، واحدة من الأشياء العظيمة للجافا سكريبت هو أنه يمكنك تعيين (functions) للكائنات.  هذا يسمح لك لتبادل الأساليب عبر اللوحات الخاصة بك دون الحاجة إلى إعادة تعريفها في كل عقدة function تستخدم على التوالي .

أولا، قم بتوصيل عقدة inject ، وعقدتين Function و عقدتين debug كما هو مبين أدناه :

intermediate-flows

سنقوم بتحرير عقدة function الأولى و إضافة هذا الكود. قم بتعيين عنصر العام (global) من عنصر السياق ليكون عنصر جديد، “hello” ، وهي دالة التي تقوم بترجيع السلسلة  “Hello There” . ثم قم بتعيين الحمولة (payload) للرسالة لهذه الدالة لإرجاع قيم لهذه الدالة العامة (global function) . هذا سيطبع “Hello There”.

في الشكل أدناه يوضح كيفية إعداد عقدة Function الأولى :

intermediate-flows

الآن قم بتحرير عقدة الدالة الثانية من خلال إعداد حمولة الرسالة من الدالة الثانية لتوصيل الإخراج من عنصر ‘hello’ في العنصر العام من كائن السياق مع كلمة “World”.

في الشكل أدناه يوضح كيفية إعداد عقدة Function الأخرى :

intermediate-flows

قم بنشر التدفق، ثم الضغط على زر الموجود على عقدة inject سيظهر لك إخراج كل من عقد الـ Function كما يلي :

intermediate-flows

على الرغم من كونه بسيطا جدا، فإن هذا المثال يوضح مدى سهولة استخدام عنصر السياق لتعيين المتغيرات التي تحتوي على البيانات فقط ، ولكن أيضا الدوال (Functions) التي يمكن مشاركتها و الوصول إليها بواسطة عدة دوال(Functions) في اللوحة الخاصة بك .

هناك جانبان مهمان يجب مراعاتهما هما : أولا، يجب أن تأتي الـ Function التي تحدد العنصر العام (global) في عنصر السياق قبل اي دالة (function) أخرى ترغب في استخدام هذا المتغير أو الدالة في التدفق. ثانيا، في الاصدار (1.11.0) للـ Node-red ، يبقى كائن السياق في الذاكرة بعد إعادة النشر و حتى يتم إعادة تشغيل Node-RED .لذلك حتى بعد حذف عقد الـ Function التي تقوم بتعيين عناصر في العنصر العام (global) ، ستظل هذه العناصر في المتناول حتى يتم تعيينها إلى قيمة خالية “null” .

X
تم إضافة المنتج إلى السلة بنجاح