Pular para o conteúdo principal

function

O nó function é utilizado para escrever código JavaScript personalizado, permitindo realizar cálculos complexos, transformações de dados e lógica de processamento de mensagens. Ele oferece flexibilidade para implementar lógica que não é suportada pelos nós padrão.


Configurações do nó function

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 function.

Exemplo:

  • Nome do nó: auth data

2. Função

Neste campo, insira o código JavaScript que será executado para cada mensagem que passar pelo nó.

Formato dos dados de entrada:

O código recebe um objeto msg, representando a mensagem atual.

Formato dos dados retornados:

  • O nó deve retornar um objeto de mensagem (ou um array de objetos) para passar os dados adiante no fluxo.
  • Se retornar null, a mensagem não será enviada adiante.

Exemplo:

// Aumenta o valor de msg.payload em 1
msg.payload = msg.payload + 1;
return msg;

3. Exemplo de Saída (JSON)

Exemplo de dados que a função retorna, no formato JSON.
Com base neste exemplo, é construída a estrutura de dados para o próximo nó — seus campos aparecem no bloco Input Schema do próximo nó. O editor compara o exemplo com o código da função.

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

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

Exemplo:

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

Exemplos de uso

Exemplo 1: Multiplicação do valor em msg.payload

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

Descrição:

  • Pega o valor de msg.payload, multiplica por 2 e envia o objeto atualizado.

Exemplo 2: Adicionando uma nova propriedade

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

Descrição:

  • Cria uma nova 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 de texto dependendo do valor de msg.payload.

Exemplo 4: Filtragem de mensagens

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

Descrição:

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