Noeud function : comment avoir plusieurs sorties

node-red
mini-tuto

#1

Le noeud function peut avoir plusieurs sorties. Par défaut, on retourne (on fait sortir) un seul message (msg). On augmente le nombre de sorties avec l’indicateur numérique situé en dessous de la zone d’édition. Ici, on va créer 3 sorties (outputs)

Pour tester le fonctionnement, on va créer une variable qui contient un nombre tiré au hasard à chaque exécution du noeud à l’aide de la fonction javascript Math.random(). La fonction tire au hasard un nombre entre 0 et 1. Il a été multiplié par 100.

On créé 3 variables (msg1…msg3) qui contiendront chacune le message de sortie. Ici, le payload contient une simple chaine de caractère (output 1…output 3).

Maintenant, pour utiliser les sorties multiples, on construit un tableau qui contient les messages, par exemple

return [msg1,msg2,msg3]

Il n’est pas obligatoire de disposer de tous les messages de sortie. En remplaçant un message par null, la sortie ne sera pas activée et le flow associé ne sera pas exécuté.

Le code complet du flow qu’il suffit d’importer sur le flow

var rand = Math.random() * 100;
node.log(rand);
msg1 = {};
msg2 = {};
msg3 = {};
msg1.payload = "output 1";
msg2.payload = "output 2";
msg3.payload = "output 3";

if ( rand <= 30 ) {
    return [msg1,null,null];    
} else if ( rand > 30 && rand < 65 ) {
    return [null,msg2,null];   
} else {
    return [msg1,msg2,msg3];    
}

Ajoutez un noeud Inject pour exécuter à intervalle régulier la fonction