2016-11-20 1 views
-1

In Node-RED Ich versuche, eine globale Variable von einem Teil eines MQTT Thema zu erstellen:Wie erstelle ich eine dynamisch benannte globale Variable?

var mytopic = msg.topic; 
shortcode = mytopic.replace(/.*presence\/(.*)/, '$1'); 
global.set(shortcode, '1'); 

Die Dokumentation erwähnt global.set('foo', 'bar'); aber wie stelle ich die Variablennamen, foo, dynamisch?

+1

Dynamisch erzeugte globale Variable klingt wie nicht die beste (schrecklich?) Designentscheidung. Wenn du das Problem erklärst, hat dir die Community vielleicht geholfen, es besser zu lösen. – zerkms

+4

Basiert dies nur auf die Syntax, aber wenn die set-Methode zwei Strings oder einen String und einen anderen Wert verwendet, dann sollte es keinen Grund geben, dass Sie keine Variable als ersten Parameter übergeben könnten, The called really weiß nicht, ob der Aufrufer eine statische Zeichenfolge oder eine Variable angegeben hat. – Taplar

+2

Sie haben nicht gesagt, warum Sie denken, was Sie haben, funktioniert nicht – hardillb

Antwort

0

Vielen Dank für die Antworten.

Wie vorgeschlagen sollte es tatsächlich funktionieren und es tut. Mein Fehler lag woanders. Ich bin mir der Risiken der Verwendung globaler Variablen bewusst. Jetzt kann ich mit MQTT-Themen wie '+/presence/#' (mit Informationen über das Vorhandensein verschiedener von mehreren Sensoren erkannter Objekte) mit einem Flow arbeiten.

Verwandte Themen