Alternate Text

Node-RED系统 开源项目教程

物联网IoT

Node-RED 是一款由 IBM 开发、基于 Node.js 的可视化低代码流编程工具**,采用拖拽式节点编排,不用大量手写代码,通过连线把各个功能节点串起来实现自动化流程。

2026-09-07 12 T13611764069

一、系统简介

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 转发、快速原型验证、设备告警推送

❌ 不适合:高并发核心业务、大型复杂业务系统、高吞吐交易系统