节点类型与面板
节点类型与面板
本节介绍 Node-RED 的节点类型和面板使用。学习完成后,您将能够:
- 熟悉 Node-RED 的节点分类
- 安装和管理社区节点
- 使用节点的文档功能
- 配置节点的基本属性
Node Palette Overview
Section titled “Node Palette Overview”Node-RED 的节点面板分为三个主要区域:
┌──────────────────────────────────────┐│ Node Palette (节点面板) │├──────────────────────────────────────┤│ [Filter Nodes...] │ ← 搜索过滤├──────────────────────────────────────┤│ ▶ Input (输入节点) ││ inject, mqtt in, http in, ... │├──────────────────────────────────────┤│ ▶ Output (输出节点) ││ debug, mqtt out, http out, ... │├──────────────────────────────────────┤│ ▶ Function (函数节点) ││ function, switch, change, ... │├──────────────────────────────────────┤│ ▶ IoT (物联网节点) ││ (安装后显示) │├──────────────────────────────────────┤│ ▶ Storage (存储节点) ││ (安装后显示) │└──────────────────────────────────────┘Core Node Categories
Section titled “Core Node Categories”Input Nodes (输入节点)
Section titled “Input Nodes (输入节点)”| 节点 | 功能 | IoT 场景 |
|---|---|---|
| Inject | 手动或定时触发消息 | 测试、定时任务 |
| MQTT In | 订阅 MQTT 主题 | 接收传感器数据 |
| HTTP In | 创建 HTTP 端点 | REST API 集成 |
| WebSocket In | WebSocket 连接 | 实时通信 |
| TCP/UDP In | TCP/UDP 接收 | 原始协议通信 |
Output Nodes (输出节点)
Section titled “Output Nodes (输出节点)”| 节点 | 功能 | IoT 场景 |
|---|---|---|
| Debug | 显示消息到调试面板 | 开发和排错 |
| MQTT Out | 发布 MQTT 消息 | 控制设备 |
| HTTP Out | 发送 HTTP 请求 | API 调用 |
| WebSocket Out | WebSocket 发送 | 实时数据推送 |
| TCP/UDP Out | TCP/UDP 发送 | 原始协议通信 |
Function Nodes (函数节点)
Section titled “Function Nodes (函数节点)”| 节点 | 功能 | 说明 |
|---|---|---|
| Function | JavaScript 自定义逻辑 | 最灵活的处理方式 |
| Switch | 条件路由 | 消息分发 |
| Change | 修改消息属性 | 类型转换、更换值 |
| Template | 模板字符串生成 | 格式化输出 |
| Delay | 消息延迟/限速 | 流量控制 |
| Trigger | 触发/门限控制 | 信号转换 |
| Join | 消息合并 | 多路数据聚合 |
| Split | 消息拆分 | 批量处理 |
| Sort | 排序 | 数据排序 |
| Batch | 批处理 | 消息批量处理 |
Installing Community Nodes
Section titled “Installing Community Nodes”通过编辑界面安装
Section titled “通过编辑界面安装”# 1. 点击右上角汉堡菜单# 2. 选择 "Manage Palette"# 3. 切换到 "Install" 标签# 4. 搜索节点名称# 5. 点击 "Install"
# 常用 IoT 节点:# node-red-contrib-influxdb# node-red-contrib-mssql# node-red-dashboard# node-red-contrib-telegrambot# node-red-contrib-modbus# node-red-node-serialport通过命令行安装
Section titled “通过命令行安装”# Docker 环境安装docker exec -it nodered shcd /datanpm install node-red-contrib-influxdbexitdocker restart nodered
# 或通过 package.json 持久化安装# nodered/data/package.json{ "name": "nodered-custom", "version": "1.0.0", "dependencies": { "node-red-contrib-influxdb": "^0.x", "node-red-dashboard": "^3.x", "node-red-contrib-telegrambot": "^4.x" }}Docker 预安装
Section titled “Docker 预安装”services: nodered: image: nodered/node-red:latest container_name: nodered volumes: - ./nodered/data:/data environment: - NODE_PATH=/usr/src/node-red/node_modules:/data/node_modulesUsing Node Documentation
Section titled “Using Node Documentation”查看节点帮助
Section titled “查看节点帮助”每个节点都内置了详细文档:
# 在编辑器中:# 1. 选中节点# 2. 点击右侧 Info 面板# 或点击节点的 (i) 图标# 3. 查看:# - 节点功能描述# - 输入输出格式# - 配置参数说明# - 使用示例Info 面板内容示例:
Function Node━━━━━━━━━━━━━━━━━━━描述: 运行 JavaScript 代码处理消息
输入: msg.payload (任意类型)输出: msg.payload (处理后的值)
属性:- name: 节点名称 (可选)- func: JavaScript 代码- outputs: 输出端口数
示例: msg.payload = msg.payload * 2; return msg;Node Configuration Common Patterns
Section titled “Node Configuration Common Patterns”✅ 好名字: [MQTT In: Factory Temperature] [Function: Temperature Converter] [InfluxDB Out: Store Sensor Data]
❌ 不好的名字: [MQTT In] # 不说明数据来源 [Function 23] # 不说明功能 [influxdb out] # 不说明存储什么// 在 Function 节点中添加错误处理try { let value = JSON.parse(msg.payload); msg.payload = value.temperature; return msg;} catch (error) { node.error("Parse error: " + error.message, msg); return null; // 丢弃错误消息}节点左下角的颜色状态:
| 颜色 | 含义 |
|---|---|
| 🔴 红色 | 未配置或错误 |
| 🟢 绿色 | 正常运行 |
| 🟡 黄色 | 警告 |
| ⚪ 灰色 | 未连接 |
Common Customer Questions
Section titled “Common Customer Questions”Q1: 如何找到合适的节点?
Section titled “Q1: 如何找到合适的节点?”A: 在 Node-RED 官网 Flow Library (flows.nodered.org) 搜索,或直接在编辑器的节点管理面板中搜索。查看下载量和评分选择可靠的节点。
Q2: 安装的节点安全吗?
Section titled “Q2: 安装的节点安全吗?”A: 社区节点需要审查后才能在 Node-RED 官方目录发布,但建议:查看 GitHub 源码、检查下载量、使用知名维护者的节点。
Q3: 节点冲突怎么办?
Section titled “Q3: 节点冲突怎么办?”A: 某些节点可能依赖不同版本的同个库。建议在干净的 Docker 环境下安装测试,如果冲突可尝试逐个安装排查。
✅ 推荐做法:
- 使用明确命名区分多个同类节点
- 安装节点前查看文档和示例
- 使用 Info 面板了解节点功能
- 通过 package.json 管理节点依赖
- 定期更新已安装的节点
❌ 避免做法:
- 安装不明确用途的节点
- 使用来源不明的节点
- 同时安装过多节点(影响性能)
- 安装后不记录节点用途
Summary
Section titled “Summary”- Node-RED 提供 30+ 内置节点,覆盖基本 IoT 需求
- 社区提供 4000+ 扩展节点
- 通过 Manage Palette 或命令行安装节点
- Info 面板提供完整的节点文档
- 节点命名和错误处理是良好的开发习惯