Saltar al contenido principal

Nodo template

El nodo template se utiliza para generar datos basados en una plantilla dada. Permite crear cadenas, HTML, JSON y otros formatos, aplicando la sustitución dinámica de valores del mensaje msg u otras fuentes.


Configuración del nodo template

IMG2

1. Nombre

Campo para especificar el nombre del nodo.
El nombre se muestra en el área de trabajo y ayuda a identificar fácilmente el nodo.
Si se deja vacío, el nodo se llamará template.

Ejemplo:

  • Nombre del nodo: hello world

2. Plantilla

Campo principal donde se define el texto de la plantilla.
Soporta la sustitución de datos a través de llaves ({{...}}) y las capacidades del motor de plantillas Mustache.

Ejemplo de plantilla:

Hello {{payload}} !

3. Sintaxis

Define la sintaxis de la plantilla:

  • Mustache: Plantilla Mustache.
  • Texto plano: Cadena de texto.

4. Salida como

Define el formato de los datos de salida del nodo:

  • Texto plano: Crea una cadena de texto.
  • JSON: Crea JSON.
  • YAML: Crea YAML.

Características de la sintaxis Mustache

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

    Ejemplo:

    • Plantilla: Hello, {{name}}!
    • Mensaje: { "name": "Alice" }
    • Resultado: Hello, Alice!
  2. Visualización de condiciones:
    La lógica condicional se soporta a través de la existencia o ausencia de un valor.

    Ejemplo:

    {{#isOnline}}
    <p>Estado: En línea</p>
    {{/isOnline}}
    {{^isOnline}}
    <p>Estado: Fuera de línea</p>
    {{/isOnline}}
  3. Bucles:
    Se puede iterar sobre arreglos.

    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. Escapado de HTML:
    Mustache escapa por defecto los caracteres especiales de HTML.
    Para evitar el escapado, utiliza {{{...}}}.

    Ejemplo:

    {{{htmlContent}}}

Datos de entrada

El nodo acepta un objeto msg. Los datos del mensaje se utilizan en la plantilla para la sustitución de valores.

Ejemplo de mensaje:

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

Datos de salida

El nodo envía un objeto msg, complementado con la plantilla procesada. El resultado se escribe en msg.payload.


Ejemplos de uso

Ejemplo 1: Creación de una página HTML

Plantilla:

<!DOCTYPE html>
<html>
<head>
<title>Informe de Temperatura</title>
</head>
<body>
<h1>Informe de Temperatura para {{name}}</h1>
<p>Temperatura actual: {{payload.temperature}}°C</p>
</body>
</html>

Mensaje:

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

Resultado:
Página HTML con datos dinámicos.


Ejemplo 2: Generación de 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
}
}