استخدام عقدة التبديل لتوجية الرسالة اعتمادا على خصائص معينة :
أحد المميزات الموجودة لدى JSON object أنها تتيح لك العمل بسهوله على خصائصها. سيتم استخدام عقدة التبديل (switch node) و التي تعمل كمفتاح أو توجيه للرسائل إلى اتجاه مخرج معين اعتمادا على خصائص الرسالة الواردة . على سبيل المثال، يمكنك تفحص خصائص الحقلmsg.payload.analyze و بالإعتماد على قيمتها (صحيحة / خاطئة ) ، تقرر توجيه الرسالة إلى أحد مخرجات عقدة التبديل (switch Node) .
قم بسحب عقدة التبديل (switch node) ، ثم انقر نقرا مزدوجا عليها . قم بإعدادها للتحقق من قيمة الحقل msg.payload.analyze ، إذا كانت صحيحة سنقوم بإخراج الرسالة إلى المخرج الأول لعقدة التبديل ; و إذا كانت خاطئة سنقوم بإخراج الرسالة إلى المخرج الثاني لعقدة التبديل . قم بإعداد عقدة التبديل كما هو موضح بالصورة ادناه :
![basic-nodes-and-flows](https://geeksvalley.com/wp-content/uploads/2017/03/pic3.4-1.png)
الآن يمكنك توصيل عقدتين إخراج debug كما هو موضح بالصورة التالية ، عند إعداد عدة مخارج للعقدة ، يتم ترقيم المخارج من أعلى ، لذلك المخرج 1 هو المخرج الأعلى و المخرج 2 هو المخرج السفلي في الشكل التالي.
![basic-nodes-and-flows](https://geeksvalley.com/wp-content/uploads/2017/03/pic3.5.png)
قم بالرجوع إلى صفحة إدخال HiveMQ و إرسال رسالة {MQTT {“analyze”:true, “value”:6 ، سوف تلاحظ أنه تم تفعيل المخرج الأول على عقدة التبديل و تم توجيه الرسالة الواردة على مخرج 1 ، إذا قمت بإرسال الرسالة التي تم استخدامها مسبقا {“analyze”:false, “value”:10} ، ستقوم عقدة التبديل (switch node) بتفعيل المخرج 2 و على عقدة الإخراج (debug) المربوطة على هذا المخرج ستظهر الرسالة. ستلاحظ على لوحة الاخراج عند تبويب debug على يمين النافذة طباعة الرسالة كما هو موضح بالصورة :
![basic-nodes-and-flows](https://geeksvalley.com/wp-content/uploads/2017/03/pic3.6.png)
كما لاحظت، يوفر لك Node-RED عقد تسمح لك بسرعة تحديد محتويات الرسائل الواردة و توجيه الرسالة إلى أجزاء مختلفة من التدفق إعتمادا على محتوى معين للمدخلات.
التلاعب في محتوى الرسائل بإستخدام عقدة التغيير :
عقدة أخرى مفيدة وهي عقدة التغيير (change node ) ، و التي تسمح لك لتغيير محتوى الرسالة أو إضافة خصائص جديدة عليها . فيمكنك استخدام هذه العقدة للتأثير على الخصائص في الرسالة إما عن طريق تغيير خصائص موجودة ، أو حذف أو إضافة خصائص جديدة.
في هذا المثال ، سيتم إضافة حقل جديدة للرسالة وهو msg.payload.note . أولا، قم بسحب و إسقاط عقدة التغيير (change node ) و توصيلها إلى المخرج الثاني من عقدة التبديل كما في الشكل أدناه ، كما تذكرون، ان محتوى حقل msg.payload.analyze الرسالة هو false فيتم اخراجها على المخرج رقم 2.
![basic-nodes-and-flows](https://geeksvalley.com/wp-content/uploads/2017/03/pic3.7.png)
الان قم بإعداد العقدة لتعيين msg.payload.note لتحتوي على “this is not being analyzed” كما مبين لك بالصورة التالية :
![basic-nodes-and-flows](https://geeksvalley.com/wp-content/uploads/2017/03/pic3.8.png)
عند استقبال الرسالة التي ترسلها عقدة التبديل (switch node) إلى المخرج 2 ، سوف يتم تعديلها لتحتوي على عنصر “note” مع جملة “this is not being analyzed” . اذا قمت بنشر (deploy) و اختبار التدفق بواسطة ارسال رسالة MQTT من HiveMQ ، سوف يظهر لك المخرج كما هو موضح بالصورة التالية:
![basic-nodes-and-flows](https://geeksvalley.com/wp-content/uploads/2017/03/pic3.9.png)