Aller au contenu principal

Nœud template

Le nœud template génère des données à partir d'un modèle que vous définissez. Il peut produire des chaînes, du HTML, du JSON et d'autres formats, en y insérant dynamiquement des valeurs issues du message msg ou d'autres sources.


Paramètres du nœud template​

Fenêtre « Node Information » du nœud template : modèle « Hello payload ! », « Syntax » sur « Mustache », « Output As » sur « Plain Text »

1. Name​

Nom du nœud.
Il s'affiche dans l'espace de travail et permet d'identifier le nœud.
Si le champ est vide, le nœud s'appelle template.

Exemple :

  • Nom du nœud : hello world

2. Template​

Champ principal, où vous saisissez le texte du modèle.
Il accepte l'insertion de données entre accolades ({{...}}) et les fonctionnalités du moteur de modèles Mustache.

Exemple de modèle :

Hello {{payload}} !

3. Syntax​

Définit la syntaxe du modèle :

  • Mustache : modèle Mustache.
  • Plain Text : chaîne de texte.

4. Output As​

Définit le format de sortie du nœud :

  • Plain Text : crée une chaîne de texte.
  • JSON : crée du JSON.
  • YAML : crée du YAML.

Particularités de la syntaxe Mustache​

  1. Insertion de valeurs :
    Utilisez {{property}}, où property est une propriété de l'objet msg.

    Exemple :

    • Modèle : Hello, {{name}}!
    • Message : { "name": "Alice" }
    • Résultat : Hello, Alice!
  2. Affichage conditionnel :
    La logique conditionnelle repose sur la présence ou l'absence d'une valeur.

    Exemple :

    {{#isOnline}}
    <p>Status: Online</p>
    {{/isOnline}}
    {{^isOnline}}
    <p>Status: Offline</p>
    {{/isOnline}}
  3. Boucles :
    Vous pouvez parcourir des tableaux.

    Exemple :

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

    Message :

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

    Résultat :

    <ul>
    <li>Item 1</li>
    <li>Item 2</li>
    <li>Item 3</li>
    </ul>
  4. Échappement HTML :
    Par défaut, Mustache échappe les caractères spéciaux HTML.
    Pour éviter l'échappement, utilisez {{{...}}}.

    Exemple :

    {{{htmlContent}}}

Données d'entrée​

Le nœud reçoit un objet msg. Le modèle utilise les données du message pour insérer les valeurs.

Exemple de message :

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

Données de sortie​

Le nœud envoie l'objet msg complété par le modèle traité. Le résultat est écrit dans msg.payload.


Exemples d'utilisation​

Exemple 1 : créer une page HTML​

Modèle :

<!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>

Message :

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

Résultat :
Une page HTML contenant des données dynamiques.


Exemple 2 : générer une réponse JSON​

Modèle :

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

Message :

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

Résultat :

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