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

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.payloadpar 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é
newPropertyet l'ajoute à l'objetmsg.
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é
alertcontenant un avertissement textuel qui dépend de la valeur demsg.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.