store/initialize Node-Red 块中持久变量的最佳方法?
Best way to store/initialize a persistant variable in Node-Red block?
我正在使用 node-red,我对制作一个持久变量(实际上是一个数组)很感兴趣,它不会在每次数据到达节点时被删除。我已经阅读了 context 选项,但我无法让它工作。
关键是我有一个块,我想在其中存储一些传入数据,因此稍后我可以将存储的数据与新传入数据进行比较。但是,如果我在这样的块中定义一个变量,那么每次有东西到达块本身时,该变量都会被覆盖,所以我无法有效地进行比较。
那我该怎么做呢?而且,what/where 是初始化该变量的最佳方式吗?
提前致谢,
此致
上下文功能正是您想要的。
您可以通过多种方式使用上下文属性。您可以使用 Change
节点 get/set 它们或使用 Function 节点来完成。
例如:
var myArray = flow.get('myArray');
if (!myArray) {
myArray = [];
}
// do something with myArray
// save it back to context
flow.set('myArray',myArray);
文档有更多详细信息:http://nodered.org/docs/writing-functions#storing-data
我正在使用 node-red,我对制作一个持久变量(实际上是一个数组)很感兴趣,它不会在每次数据到达节点时被删除。我已经阅读了 context 选项,但我无法让它工作。
关键是我有一个块,我想在其中存储一些传入数据,因此稍后我可以将存储的数据与新传入数据进行比较。但是,如果我在这样的块中定义一个变量,那么每次有东西到达块本身时,该变量都会被覆盖,所以我无法有效地进行比较。
那我该怎么做呢?而且,what/where 是初始化该变量的最佳方式吗?
提前致谢,
此致
上下文功能正是您想要的。
您可以通过多种方式使用上下文属性。您可以使用 Change
节点 get/set 它们或使用 Function 节点来完成。
例如:
var myArray = flow.get('myArray');
if (!myArray) {
myArray = [];
}
// do something with myArray
// save it back to context
flow.set('myArray',myArray);
文档有更多详细信息:http://nodered.org/docs/writing-functions#storing-data