一、系统简介
Node-RED 是一款由 IBM 开发、基于 Node.js 的可视化低代码流编程工具,采用拖拽式节点编排,不用大量手写代码,通过连线把各个功能节点串起来实现自动化流程。 核心定位:物联网自动化、设备对接、数据采集转发、API 网关、定时任务、智能家居联动、简单业务流。
一句话:拖拽模块连线,快速做自动化流程。
二、核心功能
1. 可视化流编辑 浏览器网页编辑器,直接拖拽节点,连线定义数据流向,实时调试,支持注释、分组、折叠流程。
2. 丰富内置节点 内置:HTTP 请求、MQTT、TCP/UDP、定时触发器、函数(JS 代码)、JSON 解析、文件读写、调试输出、数据库、模板、转换、判断分支。
3. 可扩展生态 Node-RED 社区库node-red-contrib-*海量第三方节点:Modbus、OPCUA、摄像头、各类传感器、云平台对接、AI 接口、数据库(MySQL/PostgreSQL/SQLite)。
4. 消息模型 msg 统一消息对象msg,最常用msg.payload承载数据,节点之间传递数据,支持自定义属性。
5. 注入与调试 Inject 注入节点手动 / 定时触发流;Debug 节点打印数据到侧边控制台,实时看变量,排错方便。
6. 持久化 流程自动保存,重启服务后流程不丢失;支持全局变量、流程局部变量存储数据。
7. 权限与仪表盘 自带 Dashboard 面板,快速做可视化监控页面;支持账号密码登录、多用户权限。
三、优点 & 缺点
✅ 优点
1. 上手门槛低,不用精通后端,零基础也能搭自动化流程,少量 JS 即可扩展。
2. 跨平台:Windows / Linux / Mac / 树莓派、Docker 都能跑。
3. 协议支持广:MQTT、Modbus、HTTP、WebSocket、串口,物联网首选。
4. 快速原型,开发效率极高,几分钟搭建数据采集 + 上报 + 告警流程。
5. 开源免费,社区活跃,大量现成节点和案例。
6. 热更新:修改流程直接部署,不需要重启服务。
❌ 缺点
1. 复杂业务不适合:大型复杂业务、高并发企业级系统,代码维护会混乱,大量节点连线很难阅读。
2. 性能上限有限:单进程模型,大量并发任务容易阻塞;长耗时任务容易拖垮整个流。
3. 调试局限性:复杂链路问题排查不如 IDE 方便,大量分支流容易出现消息堆积。
4. 版本依赖坑:第三方节点多,不同节点版本容易冲突,升级 Node-RED 有概率流程报错。
5. JS 内存风险:自定义 Function 节点写不好容易内存泄漏。
6. 安全默认不安全:默认无密码、开放访问,直接公网暴露会被入侵。
四、保姆级部署教程(3 种方案,推荐 Docker 最简单)
环境前置:服务器 / 电脑,网络可访问;Linux 推荐 Ubuntu/Debian
方案 1:Docker 一键部署【推荐,最简单,隔离环境】
1. 先安装 Docker + Docker Compose
# Ubuntu安装docker
curl -fsSL https://get.docker.com | sh
systemctl start docker
systemctl enable docker
1. 创建存放 node-red 数据目录
mkdir -p ~/node-red-data
1. 启动容器命令
docker run -d \
--name node-red \
--restart=always \
-p 1880:1880 \
-v ~/node-red-data:/data \
-e TZ=Asia/Shanghai \
nodered/node-red
参数说明
· -p 1880:1880:端口,浏览器访问 http://服务器IP:1880
· -v:持久化,容器删除流程数据不会丢
· --restart=always开机自启
1. 访问 浏览器打开 http://IP:1880,进入 Node-RED 编辑器
⚠️ 安全:部署后第一件事设置登录账号密码,否则任何人都能修改你的流程!
设置登录密码(Docker 版本)
进入容器:
docker exec -it node-red bash
编辑配置文件
nano /data/settings.js
找到adminAuth,取消注释,修改账号密码
adminAuth: {
type: "credentials",
users: [{
username: "admin",
password: "$2a$08$zZWtXTja0fB1pzD4sHCMyOCMYz2Z6dNbM6tl8sJogENOMcxWV9DN.",
permissions: "*"
}]
},
密码加密生成工具:Node-RED 官网工具,输入明文密码生成 bcrypt 哈希串。 保存退出,重启容器:docker restart node-red
方案 2:原生 npm 安装(Linux 物理机 / 树莓派)
1. 安装 Node.js(Node-RED 要求 Node14~20,不要太高)
curl -fsSL https://deb.nodesource.com/setup_18.x | sudo -E bash -
sudo apt install nodejs npm
1. 全局安装 node-red
sudo npm install -g node-red
1. 启动
node-red
后台常驻 + 开机自启可以配置 systemd 服务。 访问:http://127.0.0.1:1880
方案 3:Windows 安装
1. 官网下载 Node.js v18 LTS 安装
2. cmd 执行
npm install -g node-red
1. 启动:cmd 输入 node-red
2. 浏览器访问
五、基础操作保姆教程(上手使用)
5.1 界面介绍
· 左侧:节点仓库(拖拽节点)
· 中间:画布,绘制流程
· 右侧:信息面板,Debug 输出、节点配置
· 顶部:Deploy【部署】按钮(修改流程必须点部署生效)
5.2 第一个 HelloWorld 示例
1. 从左侧拖拽 Inject(注入) 节点到画布
2. 拖拽 Debug(调试) 节点到画布
3. 连线:Inject 输出 → Debug 输入
4. 双击 Inject 节点,修改 payload 内容:hello node-red
5. 点右上角 Deploy 部署
6. 点击 Inject 左边蓝色按钮触发,右侧 Debug 面板看到输出文字
原理:Inject 产生 msg 消息,msg.payload=hello node-red,传递给 Debug 打印。
5.3 常用节点快速说明
· Inject:触发器,手动触发 / 定时触发
· Debug:打印消息,调试
· Function:自定义 JS 代码,处理数据 return msg;
· HTTP in / HTTP response:搭建 http 接口服务
· MQTT in/out:MQTT 订阅发布
· Switch:条件分支判断(if)
· Change:修改 msg 属性
· JSON:JSON 字符串 ↔ JS 对象互转
5.4 安装第三方节点
菜单 → 管理面板 → 安装,搜索包名,例如 node-red-contrib-modbus、node-red-dashboard 安装完成,左侧节点栏多出对应节点。
5.5 Dashboard 可视化页面(网页监控面板)
1. 安装节点 node-red-dashboard
2. 左侧出现 dashboard 分类,拖拽图表、按钮、文本、滑块
3. 访问面板地址:http://IP:1880/ui
六、最佳实践与避坑指南
1. 公网访问必须开启账号密码,禁止裸奔暴露 1880 端口
2. 流程做好分组,大流程拆分多个 Tab,不要全部堆一张画布,方便维护
3. Function 节点尽量简短,复杂逻辑抽成外部脚本,避免阻塞事件循环
4. 消息堆积问题:高频率采集增加队列限制,加节流节点
5. 定期导出流程备份:菜单 → 导出,保存 json 文件
6. 升级前先导出所有流程,第三方节点容易版本冲突
7. 生产环境建议用反向代理 Nginx,加 HTTPS
七、常见问题
1. 访问不了 1880 端口:防火墙放行端口;容器检查端口映射
2. 部署报错:检查节点配置必填项、第三方节点版本
3. 消息不触发:检查连线,点 deploy,看 debug 报错
4. 重启后流程丢失:Docker 一定要挂载 /data 持久化目录
八、适用场景总结
✅ 适合:物联网采集、传感器数据、智能家居、定时任务、简单 API 转发、快速原型验证、设备告警推送
❌ 不适合:高并发核心业务、大型复杂业务系统、高吞吐交易系统