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

عقدة template

عقدة template تُستخدم لتوليد البيانات بناءً على قالب محدد. إنها تسمح بإنشاء سلاسل نصية، HTML، JSON، وأشكال أخرى، من خلال تطبيق استبدال ديناميكي للقيم من الرسالة msg أو مصادر أخرى.


إعدادات عقدة template

IMG2

1. الاسم

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

مثال:

  • اسم العقدة: hello world

2. القالب

الحقل الرئيسي حيث يتم تحديد نص القالب.
يدعم استبدال البيانات من خلال الأقواس المعقوفة ({{...}}) وإمكانيات القالب Mustache.

مثال على القالب:

Hello {{payload}} !

3. الصيغة

تحدد صيغة القالب:

  • Mustache: قالب Mustache.
  • نص عادي: سلسلة نصية.

4. الإخراج كـ

تحدد صيغة البيانات الناتجة من العقدة:

  • نص عادي: ينشئ سلسلة نصية.
  • JSON: ينشئ JSON.
  • YAML: ينشئ YAML.

ميزات صيغة Mustache

  1. استبدال القيم:
    يُستخدم {{property}}، حيث property هو خاصية كائن msg.

    مثال:

    • القالب: Hello, {{name}}!
    • الرسالة: { "name": "Alice" }
    • النتيجة: Hello, Alice!
  2. عرض الشروط:
    تدعم المنطق الشرطي من خلال وجود أو عدم وجود قيمة.

    مثال:

    {{#isOnline}}
    <p>Status: Online</p>
    {{/isOnline}}
    {{^isOnline}}
    <p>Status: Offline</p>
    {{/isOnline}}
  3. الحلقات:
    يمكن التكرار عبر المصفوفات.

    مثال:

    <ul>
    {{#items}}
    <li>{{.}}</li>
    {{/items}}
    </ul>

    الرسالة:

    { "items": ["Item 1", "Item 2", "Item 3"] }

    النتيجة:

    <ul>
    <li>Item 1</li>
    <li>Item 2</li>
    <li>Item 3</li>
    </ul>
  4. الهروب من HTML:
    يقوم Mustache بشكل افتراضي بهروب الرموز الخاصة بـ HTML.
    لتجنب الهروب، استخدم {{{...}}}.

    مثال:

    {{{htmlContent}}}

البيانات المدخلة

تقبل العقدة كائن msg. تُستخدم البيانات من الرسالة في القالب لاستبدال القيم.

مثال على الرسالة:

{
"payload": {
"temperature": 22.5
},
"name": "Alice"
}

البيانات الناتجة

ترسل العقدة كائن msg، مضافًا إليه القالب المعالج. تُسجل النتيجة في msg.payload.


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

مثال 1: إنشاء صفحة HTML

القالب:

<!DOCTYPE html>
<html>
<head>
<title>Temperature Report</title>
</head>
<body>
<h1>Temperature Report for {{name}}</h1>
<p>Current temperature: {{payload.temperature}}°C</p>
</body>
</html>

الرسالة:

{
"payload": {
"temperature": 22.5
},
"name": "Alice"
}

النتيجة:
صفحة HTML مع بيانات ديناميكية.


مثال 2: توليد استجابة JSON

القالب:

{
"status": "{{status}}",
"data": {
"temperature": {{payload.temperature}},
"humidity": {{payload.humidity}}
}
}

الرسالة:

{
"status": "ok",
"payload": {
"temperature": 22.5,
"humidity": 60
}
}

النتيجة:

{
"status": "ok",
"data": {
"temperature": 22.5,
"humidity": 60
}
}