Pular para o conteúdo principal

Nó function

No nó function, você escreve código JavaScript próprio para fazer cálculos complexos, transformar dados e implementar a lógica de processamento de mensagens. Com ele, você implementa lógica que os nós padrão não suportam.


Configurações do nó function​

Janela "Node Information" do nó function "auth data": o campo "Function" contém código que define grant_type como client_credentials e os cabeçalhos Content-Type e Accept

1. Name​

Nome do nó.
O nome aparece na área de trabalho e ajuda a identificar o nó.
Se o campo ficar vazio, o nó se chamará function.

Exemplo:

  • Nome do nó: auth data

2. Function​

Código JavaScript executado para cada mensagem que passa pelo nó.

Formato dos dados de entrada:​

O código recebe o objeto msg, que representa a mensagem atual.

Formato dos dados retornados:​

  • Para passar os dados adiante no fluxo, o nó deve retornar um objeto de mensagem (ou um array de objetos).
  • Se o nó retornar null, a mensagem não segue adiante.

Exemplo:

// Incrementa msg.payload em 1
msg.payload = msg.payload + 1;
return msg;

3. Output Example (JSON)​

Exemplo, em formato JSON, dos dados que a função retorna.
O esquema de dados do nó seguinte é gerado a partir desse exemplo: os campos dele aparecem no bloco Input Schema desse nó. O editor confere o exemplo com o código da função.

Os campos do exemplo descrevem a raiz do objeto msg, e não msg.payload, porque a função retorna a mensagem inteira.

O exemplo também serve como dados de teste: se, ao clicar em Execute em um dos nós seguintes (admin-api, http request), a função não passar dados adiante, é usado o valor deste campo.

Exemplo:

{
"payload": {
"orderId": 123,
"status": "paid"
}
}

Exemplos de uso​

Exemplo 1: multiplicar o valor de msg.payload​

msg.payload = msg.payload * 2;
return msg;

Descrição:

  • Multiplica o valor de msg.payload por 2 e envia o objeto atualizado.

Exemplo 2: adicionar uma nova propriedade​

msg.newProperty = "Hello, World!";
return msg;

Descrição:

  • Cria a propriedade newProperty e a adiciona ao objeto msg.

Exemplo 3: processamento condicional de mensagens​

if (msg.payload > 100) {
msg.alert = "High value detected!";
} else {
msg.alert = "Value is normal.";
}
return msg;

Descrição:

  • Adiciona a propriedade alert com um aviso em texto que depende do valor de msg.payload.

Exemplo 4: filtragem de mensagens​

if (msg.payload > 50) {
return msg; // Passa a mensagem adiante
}
return null; // Interrompe a mensagem

Descrição:

  • Deixa passar apenas mensagens com msg.payload > 50; as demais são interrompidas.