Pular para o conteúdo principal

template

O nó template é usado para gerar dados com base em um modelo especificado. Ele permite criar strings, HTML, JSON e outros formatos, aplicando a substituição dinâmica de valores da mensagem msg ou de outras fontes.


Configurações do nó template

IMG2

1. Nome

Campo para especificar o nome do nó.
O nome é exibido na área de trabalho e ajuda a identificar facilmente o nó.
Se deixado em branco, o nó será chamado de template.

Exemplo:

  • Nome do nó: hello world

2. Template

Campo principal onde o texto do modelo é definido.
Ele suporta a substituição de dados através de chaves ({{...}}) e as funcionalidades do template Mustache.

Exemplo de modelo:

Hello {{payload}} !

3. Sintaxe

Define a sintaxe do modelo:

  • Mustache: Modelo Mustache.
  • Texto Simples: String de texto.

4. Saída Como

Define o formato dos dados de saída do nó:

  • Texto Simples: Cria uma string de texto.
  • JSON: Cria JSON.
  • YAML: Cria YAML.

Características da sintaxe Mustache

  1. Substituição de valores:
    Usa {{property}}, onde property é uma propriedade do objeto msg.

    Exemplo:

    • Modelo: Hello, {{name}}!
    • Mensagem: { "name": "Alice" }
    • Resultado: Hello, Alice!
  2. Exibição de condições:
    A lógica condicional é suportada através da existência ou ausência de um valor.

    Exemplo:

    {{#isOnline}}
    <p>Status: Online</p>
    {{/isOnline}}
    {{^isOnline}}
    <p>Status: Offline</p>
    {{/isOnline}}
  3. Laços:
    É possível iterar sobre arrays.

    Exemplo:

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

    Mensagem:

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

    Resultado:

    <ul>
    <li>Item 1</li>
    <li>Item 2</li>
    <li>Item 3</li>
    </ul>
  4. Escapando HTML:
    Mustache escapa por padrão caracteres especiais HTML.
    Para evitar o escape, use {{{...}}}.

    Exemplo:

    {{{htmlContent}}}

Dados de entrada

O nó aceita um objeto msg. Os dados da mensagem são usados no modelo para a substituição de valores.

Exemplo de mensagem:

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

Dados de saída

O nó envia um objeto msg, complementado com o modelo processado. O resultado é gravado em msg.payload.


Exemplos de uso

Exemplo 1: Criação de uma página HTML

Modelo:

<!DOCTYPE html>
<html>
<head>
<title>Relatório de Temperatura</title>
</head>
<body>
<h1>Relatório de Temperatura para {{name}}</h1>
<p>Temperatura atual: {{payload.temperature}}°C</p>
</body>
</html>

Mensagem:

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

Resultado:
Página HTML com dados dinâmicos.


Exemplo 2: Geração de resposta JSON

Modelo:

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

Mensagem:

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

Resultado:

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