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

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