Aller au contenu principal

Noeud function

Le noeud function est utilisé pour écrire du code JavaScript personnalisé, permettant d'effectuer des calculs complexes, des transformations de données et de la logique de traitement des messages. Il offre la flexibilité de mettre en œuvre une logique qui n'est pas prise en charge par les noeuds standard.


Paramètres du noeud function

IMG2

1. Nom

Champ pour indiquer le nom du noeud.
Le nom s'affiche dans l'espace de travail et aide à identifier facilement le noeud.
S'il est laissé vide, le noeud sera appelé function.

Exemple :

  • Nom du noeud : auth data

2. Fonction

Dans ce champ, vous saisissez le code JavaScript qui sera exécuté pour chaque message passant par le noeud.

Format des données d'entrée :

Le code reçoit un objet msg, représentant le message actuel.

Format des données retournées :

  • Le noeud doit retourner un objet message (ou un tableau d'objets) pour transmettre les données plus loin dans le flux.
  • Si null est retourné, le message ne sera pas envoyé plus loin.

Exemple :

// Augmente la valeur de msg.payload de 1
msg.payload = msg.payload + 1;
return msg;

Exemples d'utilisation

Exemple 1 : Multiplication de la valeur dans msg.payload

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

Description :

  • Prend la valeur de msg.payload, la multiplie par 2 et envoie l'objet mis à jour.

Exemple 2 : Ajout d'une nouvelle propriété

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

Description :

  • Crée une nouvelle propriété newProperty et l'ajoute à l'objet msg.

Exemple 3 : Traitement conditionnel des messages

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

Description :

  • Ajoute une propriété alert avec un message d'avertissement en fonction de la valeur de msg.payload.

Exemple 4 : Filtrage des messages

if (msg.payload > 50) {
return msg; // Transmettre le message plus loin
}
return null; // Arrêter le message

Description :

  • Ne laisse passer que les messages avec msg.payload > 50, les autres sont arrêtés.