نموذج البرمجة Node-RED

مبتدئ

image_pdf

عقد الـ Function :

عقد الـ Function من العقد التي يمكنك استخدامها عندما لا يكون هناك عقدة موجودة مخصصة لمهمتك في متناول اليد. باستخدام عقدة Function، يمكن ان تكتب بنفسك كود جافا سكريبت (javaScript) الذي يعمل على الرسائل التي مرت و إرجاع الرسائل إلى العقدة التالية للمعالجة. لكتابة عقدة function ، يمكنك كتابة دالة جافا سكريبت (javaScript) باستخدام محرر الكود المدمج كما هو مبين بالصورة أدناه :

the-node-red-programming-model

الكتابة على عقدة Function :

دعونا نبدأ كتابة عقد Function . سوف نقوم بإنشاء تدفق بسيط من عقدة inject و عقدة debug كما هو موضح بالصورة

the-node-red-programming-model

أبسط عقدة Function هي التي ترجع Null . عندما يتم ترجيع null ، لا يتم تمرير رسالة إلى العقد التالية في التدفق و التدفق ينتهي هنا. لإنشاء العقدة التي تمرر الرسالة “كما هي” ، يمكنك إرجاع الرسالة نفسها . وهذا الكود يكون في العقدة افتراضيا، كما هو موضح أدناه :

return msg;

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

the-node-red-programming-model

كود عقدة Function يعمل على إضافة نص للحمولة :

msg.payload += "world";
return msg;

في هذا الكود، سيتم إضافة سلسلة “world” إلى حمولة الرسالة الواردة (السطر الأول ). ثم يتم إرسال هذه الحمولة المحدثة. وذلك باستخدام الإرجاع (return) ، كرسالة مخرجة (السطر 2)إلى العقدة التالية في التدفق

عند كتابة الكود أعلاه في محرر عقدة function ، عند نشرة و اختبار التدفق سترى في لوحة الإخراج عند تبويب debug الطابع الزمني لعقدة inject و النص “world” ملحق به.

إذا قمت بتعديل عقدة inject  لضح سلسلة (string) بدلا من الطابع الزمني (timestamp) ، وتعيين السلسله لـ “hello” ، سوف بتظهر لك الرسالة “hello worls ” في لوحة الإخراج عند تبويب debug عند نشر واختبار التدفق .

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