2016-11-20 58 views
-1

在节点RED我试图从MQTT话题的一部分创建一个全局变量:如何创建一个动态命名的全局变量?

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

说明文档中提到global.set('foo', 'bar');但我怎么设置变量名,,动态?

+1

动态创建的全局变量听起来并不是最好的(糟糕的)设计决策。如果你解释这个问题,社区可能会帮助你更好地解决问题。 – zerkms

+4

只是基于此语法,但如果set方法需要两个字符串,或一个字符串和其他值,那么不应该有任何理由,你不能传递一个变量作为第一个参数,真的叫不知道调用者是否给它一个静态字符串或变量。 – Taplar

+2

你还没有说过为什么你认为你有什么不起作用 – hardillb

回答

0

谢谢你的回复。

建议它应该实际上工作,它确实。我的错误在别处。我意识到使用全局变量的风险。现在,我可以使用MQTT主题(如“+/presence /#”)(包含有关由多个传感器检测到的不同项目的存在的信息)与一个流程一起工作。