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

العقدة template

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


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

نافذة "Node Information" لعقدة template: القالب "Hello payload !"، و"Syntax" مضبوط على "Mustache"، و"Output As" على "Plain Text"

1. Name​

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

مثال:

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

2. Template​

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

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

Hello {{payload}} !

3. Syntax​

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

  • Mustache: قالب Mustache.
  • Plain Text: سلسلة نصية.

4. Output As​

يحدد تنسيق مخرجات العقدة:

  • Plain Text: ينشئ سلسلة نصية.
  • 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
}
}