انتقل إلى المحتوى الرئيسي

Node function

يتم استخدام عقدة function لكتابة كود JavaScript مخصص، مما يسمح بإجراء حسابات معقدة، وتحويل البيانات، ومنطق معالجة الرسائل. إنها توفر المرونة لتنفيذ منطق غير مدعوم من قبل العقد القياسية.


إعدادات عقدة function

IMG2

1. الاسم

حقل لتحديد اسم العقدة.
يتم عرض الاسم في مساحة العمل ويساعد في التعرف بسهولة على العقدة.
إذا ترك فارغًا، سيتم تسمية العقدة بـ function.

مثال:

  • اسم العقدة: auth data

2. الدالة

هذا الحقل هو المكان الذي يتم فيه إدخال كود JavaScript، والذي سيتم تنفيذه لكل رسالة تمر عبر العقدة.

تنسيق بيانات الإدخال:

يتلقى الكود كائن msg، يمثل الرسالة الحالية.

تنسيق بيانات الإخراج:

  • يجب على العقدة إرجاع كائن رسالة (أو مصفوفة من الكائنات) لتمرير البيانات إلى الأسفل في السلسلة.
  • إذا تم إرجاع null، فلن يتم إرسال الرسالة إلى الأمام.

مثال:

// زيادة قيمة msg.payload بمقدار 1
msg.payload = msg.payload + 1;
return msg;

أمثلة على الاستخدام

المثال 1: ضرب القيمة في msg.payload

msg.payload = msg.payload * 2;
return msg;

الوصف:

  • يأخذ قيمة msg.payload، ويضربها في 2، ويرسل الكائن المحدث.

المثال 2: إضافة خاصية جديدة

msg.newProperty = "Hello, World!";
return msg;

الوصف:

  • ينشئ خاصية جديدة newProperty ويضيفها إلى كائن msg.

المثال 3: معالجة الرسائل الشرطية

if (msg.payload > 100) {
msg.alert = "High value detected!";
} else {
msg.alert = "Value is normal.";
}
return msg;

الوصف:

  • يضيف خاصية alert مع رسالة تحذيرية اعتمادًا على قيمة msg.payload.

المثال 4: تصفية الرسائل

if (msg.payload > 50) {
return msg; // تمرير الرسالة إلى الأمام
}
return null; // إيقاف الرسالة

الوصف:

  • يمرر فقط الرسائل التي تحتوي على msg.payload > 50، بينما يتم إيقاف الآخرين.