You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Node-RED 如何遍历编辑器内全部节点以查找名称匹配的节点

Node-RED 编辑器节点遍历搜索实现方案

Node-RED 编辑器全局暴露了RED核心对象,直接调用其提供的节点API即可完成需求,具体步骤如下:

  • 在input元素的输入事件回调中先获取用户输入的关键字,做非空判断避免无意义遍历
  • 调用RED.nodes.eachNode()方法遍历所有编辑器内的普通节点,该方法接收一个回调作为入参,每遍历到一个节点就会将节点实例传入回调
  • 在回调中判断节点name属性是否与输入内容匹配,将符合要求的节点存入结果数组即可

完整代码示例

// 替换为你实际使用的input元素选择器
document.querySelector('#your-input-id').addEventListener('input', function(e) {
    const searchKey = e.target.value.trim();
    const matchedNodes = [];

    // 空输入直接终止逻辑
    if (!searchKey) {
        // 此处可添加清空搜索结果的自定义逻辑
        return;
    }

    // 遍历所有工作区节点
    RED.nodes.eachNode(node => {
        // 仅匹配有名称的节点,忽略无名称节点
        if (node.name && node.name.includes(searchKey)) {
            matchedNodes.push({
                nodeId: node.id,
                nodeName: node.name,
                nodeType: node.type,
                workspaceId: node.z
            });
        }
    });

    // 此处可添加自定义的结果处理逻辑,比如渲染匹配列表、高亮节点等
    console.log('匹配节点结果:', matchedNodes);
});

补充说明

如果你需要同时匹配子流、分组节点,可额外调用RED.nodes.eachSubflow()、RED.nodes.eachGroup()方法遍历对应类型的节点,用法和eachNode完全一致。
如果需要不区分大小写匹配,可将node.name和searchKey都转为小写/大写后再做匹配判断。

内容的提问来源于stack exchange,提问作者Andreas Rozek

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.03 00:12:00