Saltar al contenido principal

Nodo template

El nodo template genera datos a partir de una plantilla definida. Con él puedes crear cadenas, HTML, JSON y otros formatos, sustituyendo dinámicamente valores del mensaje msg u otras fuentes.


Configuración del nodo template​

Ventana «Node Information» del nodo template: plantilla «Hello payload !», «Syntax» en «Mustache», «Output As» en «Plain Text»

1. Name​

Nombre del nodo.
Se muestra en el espacio de trabajo y sirve para identificar el nodo.
Si lo dejas vacío, el nodo se llamará template.

Ejemplo:

  • Nombre del nodo: hello world

2. Template​

Campo principal, donde escribes el texto de la plantilla.
Admite la sustitución de datos con llaves ({{...}}) y las funciones del motor de plantillas Mustache.

Ejemplo de plantilla:

Hello {{payload}} !

3. Syntax​

Sintaxis de la plantilla:

  • Mustache: plantilla Mustache.
  • Plain Text: cadena de texto.

4. Output As​

Formato de salida del nodo:

  • Plain Text: crea una cadena de texto.
  • JSON: crea JSON.
  • YAML: crea YAML.

Sintaxis de Mustache​

  1. Sustitución de valores:
    Usa {{property}}, donde property es una propiedad del objeto msg.

    Ejemplo:

    • Plantilla: Hello, {{name}}!
    • Mensaje: { "name": "Alice" }
    • Resultado: Hello, Alice!
  2. Renderizado condicional:
    La lógica condicional se basa en si un valor existe o no.

    Ejemplo:

    {{#isOnline}}
    <p>Status: Online</p>
    {{/isOnline}}
    {{^isOnline}}
    <p>Status: Offline</p>
    {{/isOnline}}
  3. Bucles:
    Puedes recorrer arrays.

    Ejemplo:

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

    Mensaje:

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

    Resultado:

    <ul>
    <li>Item 1</li>
    <li>Item 2</li>
    <li>Item 3</li>
    </ul>
  4. Escape de HTML:
    Por defecto, Mustache escapa los caracteres especiales de HTML.
    Para evitarlo, usa {{{...}}}.

    Ejemplo:

    {{{htmlContent}}}

Datos de entrada​

El nodo recibe un objeto msg. La plantilla toma de este mensaje los valores que sustituye.

Ejemplo de mensaje:

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

Datos de salida​

El nodo envía el objeto msg con la plantilla procesada añadida. El resultado se escribe en msg.payload.


Ejemplos de uso​

Ejemplo 1: crear una página HTML​

Plantilla:

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

Mensaje:

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

Resultado:
Una página HTML con datos dinámicos.


Ejemplo 2: generar una respuesta JSON​

Plantilla:

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

Mensaje:

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

Resultado:

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