Passa al contenuto principale

Nodo template

Il nodo template viene utilizzato per generare dati basati su un modello specificato. Permette di creare stringhe, HTML, JSON e altri formati, applicando la sostituzione dinamica dei valori dal messaggio msg o da altre fonti.


Impostazioni del nodo template

IMG2

1. Nome

Campo per specificare il nome del nodo.
Il nome viene visualizzato nell'area di lavoro e aiuta a identificare facilmente il nodo.
Se lasciato vuoto, il nodo sarà chiamato template.

Esempio:

  • Nome del nodo: hello world

2. Template

Campo principale in cui viene specificato il testo del modello.
Supporta la sostituzione dei dati tramite parentesi graffe ({{...}}) e le funzionalità del motore di template Mustache.

Esempio di modello:

Hello {{payload}} !

3. Sintassi

Definisce la sintassi del modello:

  • Mustache: Modello Mustache.
  • Plain Text: Stringa di testo.

4. Output As

Definisce il formato dei dati in uscita del nodo:

  • Plain Text: Crea una stringa di testo.
  • JSON: Crea JSON.
  • YAML: Crea YAML.

Caratteristiche della sintassi Mustache

  1. Sostituzione dei valori:
    Utilizza {{property}}, dove property è una proprietà dell'oggetto msg.

    Esempio:

    • Modello: Hello, {{name}}!
    • Messaggio: { "name": "Alice" }
    • Risultato: Hello, Alice!
  2. Visualizzazione delle condizioni:
    La logica condizionale è supportata attraverso l'esistenza o l'assenza di un valore.

    Esempio:

    {{#isOnline}}
    <p>Stato: Online</p>
    {{/isOnline}}
    {{^isOnline}}
    <p>Stato: Offline</p>
    {{/isOnline}}
  3. Cicli:
    È possibile iterare su array.

    Esempio:

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

    Messaggio:

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

    Risultato:

    <ul>
    <li>Item 1</li>
    <li>Item 2</li>
    <li>Item 3</li>
    </ul>
  4. Escape HTML:
    Mustache esegue per impostazione predefinita l'escape dei caratteri speciali HTML.
    Per evitare l'escape, utilizzare {{{...}}}.

    Esempio:

    {{{htmlContent}}}

Dati di input

Il nodo accetta un oggetto msg. I dati dal messaggio vengono utilizzati nel modello per la sostituzione dei valori.

Esempio di messaggio:

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

Dati di output

Il nodo invia un oggetto msg, arricchito con il modello elaborato. Il risultato viene registrato in msg.payload.


Esempi di utilizzo

Esempio 1: Creazione di una pagina HTML

Modello:

<!DOCTYPE html>
<html>
<head>
<title>Rapporto sulla temperatura</title>
</head>
<body>
<h1>Rapporto sulla temperatura per {{name}}</h1>
<p>Temperatura attuale: {{payload.temperature}}°C</p>
</body>
</html>

Messaggio:

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

Risultato:
Pagina HTML con dati dinamici.


Esempio 2: Generazione di una risposta JSON

Modello:

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

Messaggio:

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

Risultato:

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