Aller au contenu principal

Nœud function

Le nœud function permet d'écrire du code JavaScript personnalisé pour des calculs complexes, des transformations de données et la logique de traitement des messages. Il sert à implémenter une logique que les nœuds standard ne prennent pas en charge.


Paramètres du nœud function​

Fenêtre "Node Information" du nœud function "auth data" : le champ "Function" contient du code qui définit grant_type sur client_credentials ainsi que les en-têtes Content-Type et Accept

1. Name​

Nom du nœud.
Il s'affiche dans l'espace de travail et permet d'identifier le nœud.
Si vous laissez le champ vide, le nœud s'appelle function.

Exemple :

  • Nom du nœud : auth data

2. Function​

Code JavaScript exécuté pour chaque message qui traverse le nœud.

Format des données d'entrée :​

Le code reçoit l'objet msg, qui représente le message en cours.

Format des données de retour :​

  • Pour transmettre les données à la suite du flux, le nœud doit retourner un objet message (ou un tableau d'objets).
  • Si vous retournez null, le message n'est pas transmis.

Exemple :

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

3. Output Example (JSON)​

Exemple, au format JSON, des données que retourne la fonction.
Le schéma de données du nœud suivant est construit à partir de cet exemple : ses champs apparaissent dans le bloc Input Schema de ce nœud. L'éditeur vérifie la concordance entre l'exemple et le code de la fonction.

Les champs de l'exemple décrivent la racine de l'objet msg, et non msg.payload, car la fonction retourne le message entier.

L'exemple sert aussi de données de test : si vous cliquez sur Execute dans l'un des nœuds suivants (admin-api, http request) et que la fonction ne transmet pas de données, c'est la valeur de ce champ qui est utilisée.

Exemple :

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

Exemples d'utilisation​

Exemple 1 : multiplier la valeur de msg.payload​

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

Description :

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

Exemple 2 : ajouter une propriété​

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

Description :

  • Crée la 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 contenant un avertissement textuel qui dépend de la valeur de msg.payload.

Exemple 4 : filtrer les messages​

if (msg.payload > 50) {
return msg; // Transmet le message
}
return null; // Arrête le message

Description :

  • Ne laisse passer que les messages où msg.payload > 50 ; les autres sont arrêtés.