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 une logique de traitement des messages. Il offre la flexibilité pour 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 nommé 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 de retour :

  • 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;

3. Exemple de sortie (JSON)

Exemple de données que la fonction retourne, au format JSON.
Cet exemple sert de base pour construire le schéma de données pour le noeud suivant — ses champs apparaissent dans le bloc Input Schema du noeud suivant. L'éditeur compare l'exemple avec le code de la fonction.

Les champs de l'exemple décrivent la racine de l'objet msg, et non msg.payload : la fonction retourne le message dans son intégralité.

L'exemple sert également de données de test : si, en appuyant sur le bouton Execute dans l'un des noeuds suivants (admin-api, http request), la fonction ne transmet pas les données plus loin, la valeur de ce champ est utilisée.

Exemple :

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

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 passe que les messages avec msg.payload > 50, les autres sont arrêtés.