Node-RED:我在哪里可以找到 RED.nodes.createNode/getNode/eachNode/ 的文档

Node-RED: where do I find docs for RED.nodes.createNode/getNode/eachNode/

我可能是盲人,但我找不到我在许多节点实现中看到的函数的文档,因为有:

包括有关编辑器中显示的节点和运行时实际使用的节点的重要详细信息。

我发现的一切似乎都过时了。

因此:我在哪里可以找到上述功能的最新文档?

为了不让这个问题悬而未决:

可以在 some postings written by Nick O'Leary for the Node-RED forum

中找到此问题和类似问题(处理 Node-RED 的内部结构)的答案

以下是那里的副本:

以下内容仅适用于编辑器。这在运行时是不等价的。

按名称查找

无法通过 'name' 直接找到任何内容 - 名称是可选字段,可以留空。它们也不是唯一的。在幕后,您应该使用 id 字段来引用其他节点。

let node = RED.nodes.node(id);

要获取名称 属性 被设置为特定值的任何节点:

let results = [];
RED.nodes.eachNode(function(node) {
   if (node.name === "HELLO") {
      results.push(node);
   }
});

(如果你仔细研究代码,你会发现 RED.nodes.filterNodes 存在 - 目前只过滤 ztype 而不是任何其他 属性。 .. 但它足以更新以处理任何 属性... 我们从来不需要它)

以上适用于常规流节点。要对配置节点或流执行相同的操作,您将执行相同的操作,但分别使用 eachConfig()eachWorkspace()

查找给定节点的连接节点

let node = RED.nodes.node(nodeId);
let allConnectedNodes = RED.nodes.getAllFlowNodes(node)

如果你只想要 'before' 或 'after' 这个节点,你可以这样做:

let allUpstreamNodes = RED.nodes.getAllUpstreamNodes(node);
let getAllDownstreamNodes = RED.nodes.getAllDownstreamNodes(node) 

其他信息可以在 another posting 中找到,也复制在下面(第一行代码说明如何通过其内部 ID 访问节点):

how to find the name of the tab a given node is placed on

let node = RED.nodes.node(id)

let tab = RED.nodes.workspace(node.z) || RED.nodes.subflow(node.z);