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
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
-
Sustitución de valores:
Se utiliza{{property}}
, dondeproperty
es una propiedad del objetomsg
.Ejemplo:
- Plantilla:
Hello, {{name}}!
- Mensaje:
{ "name": "Alice" }
- Resultado:
Hello, Alice!
- Plantilla:
-
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}} -
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> -
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
}
}