使用node-red; 我将数据存储在全局变量中。我正在使用GUID作为变量的标识符。 例如:
global.set(msg.guid,{"watch":true, "command":msg.content, "custno":msg.custno, "result":msg.payload});
return msg;
在单独的流程中,我想遍历所有这些变量以检查内容并采取相应的措施。 除了以下以外,我找不到找到全局变量的方法:
global.get("theguid");
所以我必须知道所有的向导,我不知道项目的数量。
我对如何处理此问题有一些想法,但想知道我是否缺少明显的东西!
感谢阅读
答案 0 :(得分:2)
一种方法是使用单个顶级上下文对象,而不是将对象分散在全局名称空间中。
例如:
var myObjects = global.get("myObjects");
myObjects[msg.guid] = {"watch":true, "command":msg.content, "custno":msg.custno, "result":msg.payload};
global.set("myObjects",myObjects);
return msg;
然后,您可以检索myObjects
对象并使用所有标准JavaScript函数对其进行处理:
var myObjects = global.get("myObjects");
var listOfGuids = Object.keys(myObject);
// etc