一、node-red的介绍

1. 什么是Node-RED?

Node-RED 是一个低代码/可视化编程工具,专门用于连接硬件设备、API 和在线服务。它采用流程图(Flow-Based Programming)的方式,让开发者通过拖拽节点(Nodes)并连线(Wires)来构建自动化任务,而无需编写大量代码。

2. 核心概念

✅ 节点(Nodes)

  • 代表一个功能模块(如发送HTTP请求、读取传感器数据、存储到数据库)。

  • 分为输入(如 inject 触发)、处理(如 function 写逻辑)、输出(如 debug 打印结果)。

✅ 流(Flows)

  • 由多个节点连接而成的数据处理流程,例如:

    [定时触发] → [获取天气API] → [解析数据] → [发送到手机]

✅ 消息(Messages)

  • 节点之间传递的数据包,格式为 msg 对象,通常包含:

    {
      payload: "Hello World",  // 主要数据
      topic: "greeting",      // 可选主题
      _msgid: "123"           // 消息ID
    }
✅ 上下文(Context)
  • 用于存储临时或持久数据,分为:

    • 节点级(仅之间有连接的节点):节点Context

    • 流程级(仅当前流可用):Flow Context

    • 全局级(所有流共享):Flow Context

    • 文件/数据库存储(重启后不丢失)

✅ context的三种作用域 vs C++变量

Node-RED Context

类比 C++ 变量

生命周期 & 作用域

示例场景

节点Context

函数局部变量

仅在当前节点内有效,处理完消息后销毁

临时存储中间计算结果

Flow Context

类的成员变量

属于当前 Flow(流程),所有节点共享

流程内共享的配置参数

Global Context

全局变量

整个 Node-RED 实例共享,跨 Flow 可用

数据库连接池、全局计数器


二、node.js的下载及安装

Node.js 是一个基于 Chrome V8 引擎 的 JavaScript 运行时环境,它让 JavaScript 可以脱离浏览器运行在服务端,用于构建高性能的网络应用。

1、node的下载

在node.js的官网下载msi文件,这种适合有管理员权限的设备,若是公司所用的设备可下载公司内部提供的安装包msi。下载后安装路径可自定义,勾选不安装额外的插件

Nodejs的中文官网


2、node安装成功的核验及配置
安装成功的核验

由于使用msi文件安装,nodejs的系统变量会自动添加安装路径,所以不必要进行这一步。若是采用文件安装的,需重新设置系统变量。而公司电脑一般不允许配置系统变量,并且不允许修改安装路径中的文件夹,需要管理员权限,但可以利用配置用户变量,即只有当前用户可以执行命令。

# 验证 node.js 版本
node -v         # 应该打印 "v.X.x.x"

# 验证 npm 版本
npm -v         # 应该打印 "v.X.x.x"
设置全局(Global)及缓存(Cache)的路径

在 Node.js 生态中,npm 的全局安装(Global)缓存(Cache)机制是两个关键设计,它们分别服务于不同的开发需求。以下是它们的核心作用及使用场景:全局安装:是为开发者提供系统级工具链(如 tscwebpack)。缓存机制:是 npm 的性能加速器,通过智能存储减少网络开销。

  • npm 全局安装(npm install -g)

    • 全局命令行工具:将包安装到系统路径,使其成为终端命令(如 vue-clinodemon)。

    • 跨项目共享:避免在每个项目中重复安装常用工具。

    • 慎用全局只有工具类包适合全局安装,库类包应本地安装。

查看路径

npm root -g               # 查看全局安装目录
which <包名>               # 查看命令所在路径(Unix)
where <包名>               # Windows 等效命令
npm get prefix             # 查看全局安装路径
npm set prefix "xxx"       #设置全局安装路径

  • npm 缓存(Cache) 

    • 加速重复安装:缓存下载的包(.tgz 压缩包),避免重复网络请求。

    • 离线恢复:网络不可用时从缓存恢复安装。

常用命令

npm config get cache             # 查看缓存目录
npm cache verify                 #验证缓存完整性
npm cache clean --force          #强制清空缓存(npm@5+ 需 --force)
npm install --prefer-offline     #优先使用缓存(离线模式)
3、常见问题和解决方案
  • 全局包找不到,安装的命令使不是内部和外部命令

  • 原因:系统路径PATH未包含npmn全局路径
✅ 修复:将全局包路径包含在系统PATH中

即配置环境变量,包括用户变量和系统变量两种,其中系统变量需要管理员权限,因此在无管理员权限的设备上只能设置用户变量

  • 方式1:通过命令行快速添加(推荐)

使用 PowerShell 或 CMD(管理员权限)运行以下命令:

# 获取 npm 全局命令目录(通常是 prefix 设置的路径)
$globalPath = npm config get prefix

# 将路径添加到用户级 PATH
[Environment]::SetEnvironmentVariable(
    "PATH",
    [Environment]::GetEnvironmentVariable("PATH", "User") + ";$globalPath",
    "User"
)

# 验证是否添加成功
echo "新 PATH: $([Environment]::GetEnvironmentVariable('PATH', 'User'))"
  • 方法 2:手动添加(图形化界面)

    • 打开 系统设置 → 关于 → 高级系统设置 → 环境变量。

    • 在 用户变量 部分,找到 PATH,点击 编辑。

三、node-red的下载

1、node-red的下载及启用

在命令行中使用npm进行全局包安装,下载的位置是设置的全局包路径

npm install -g --unsafe-perm node-red    #一般是安装最新版本或者nodejs适配的版本
npm install -g  node-red@3.x.x           #安装指定版本

若出现以下内容,说明安装成功,这是已经安装过了,再次安装的结果,上面的警告可忽略

然后再命令行中输入: node-red  即可运行 node-red

在浏览器中输入 http://127.0.0.1:1880/ 即可打开node-red进行学习开发。

2、pm2 进程管理工具

PM2 是一个 Node.js 进程管理器,使得node-red在后台自动运行,专为生产环境设计,提供以下核心能力:

  • ✅ 守护进程:崩溃后自动重启应用

  • ⚡ 负载均衡:多核CPU并行运行(Cluster模式)

  • 📊 监控面板:实时查看日志/性能指标

# 全局安装
npm install pm2 -g

# 启动应用(默认守护进程)
pm2 start app.js

# 集群模式(启动4个实例)
pm2 start app.js -i 4

# 常用命令
pm2 list              # 查看运行中进程
pm2 logs              # 显示实时日志
pm2 restart app_name  # 重启应用
pm2 delete all        # 停止所有应用


#启用node-red
pm2 start  D:\NodeDada\prefix_data\node_modules\node-red\red.js

4、学习资源

这篇文章参考了许多优秀的博主的创作,以下是很多学习资源,本文仅仅用作学习记录中,如有不足及侵权请联系删除或修改,也欢迎各位大佬批评指导。

node-red:环境搭建及使用-CSDN博客

非管理员账号设置 Windows 10 环境变量_win10无管理员权限设置环境变量-CSDN博客

PM2进阶教程-CSDN博客

node与npm版本不匹配问题_this version of npm supports the following node ve-CSDN博客

Logo

这里是“一人公司”的成长家园。我们提供从产品曝光、技术变现到法律财税的全栈内容,并连接云服务、办公空间等稀缺资源,助你专注创造,无忧运营。

更多推荐