第2章 Node-RED环境搭建与运行第一个流程

Node-RED是一款基于Node.js运行时的轻量级开源流式编程工具,凭借事件驱动、非阻塞I/O的架构优势,可在资源受限的边缘设备与弹性伸缩的云环境中无缝部署。理论上,任何能够运行Node.js的平台均可承载Node-RED。本地服务器:基于Debian的 Ubuntu、Diet-Pi,Red Hat系列的CentOS、Fedora,Windows桌面及服务器版本,容器化 Docker方案,以及国产银河麒麟KylinOS等;硬件设备:Raspberry Pi、BeagleBone Boards、Arduino、Android;云环境:IBM Cloud、SenseTecnic FRED、Amazon Web Services、Microsoft Azure、阿里云等。 为兼顾初学者与工程实践,本章仅聚焦以下四种最常用场景进行详细部署:Windows桌面与服务器;Ubuntu LTS服务器;树莓派(Raspberry Pi OS);Docker容器化方案。 在确保Node.js运行环境就绪后,本章将以“Hello Flow”为实践案例,带领读者完成从零到一的完整流程:安装、启动、浏览器访问、拖拽节点、连线配置、部署运行与调试验证。通过此案例,读者将直观掌握Node-RED的基本操作方式,并具备将所学迁移至其他平台的能力,为后续章节深入开发奠定坚实基础。

2.1 安装部署

Node-REDNode.js为技术基石。Node.jsGoogle ChromeV8 JavaScript引擎移植至服务器端,使JavaScript得以脱离浏览器,直接在操作系统之上运行。其事件驱动、非阻塞I/O的架构,为高并发网络应用提供了轻量而高效的运行环境。

在此基础之上,Node-RED通过一组精心设计的可视化节点,封装了Node.js的底层能力。用户在浏览器中所见的拖拽界面,仅作为交互呈现层;所有节点的数据流与逻辑处理,实际仍由Node.js进程在服务器或边缘设备中执行。浏览器与后端通过WebSocketHTTP 保持实时通信,从而实现了“编辑-部署-调试”一体化的流式编程体验。

2.1.1 Windows平台安装

本小节介绍在Windows环境中安装和运行Node-RED。在 Windows 平台部署 Node-RED 时,官方支持的操作系统范围涵盖Windows 10(含32位与64位版本)、Windows 11Windows Server 2016Windows Server 2019Windows Server 2022。其中,Windows 10 21H2 及以上版本以及 Windows 11 64位版,凭借对Node.js 长期支持(LTS)分支的完整兼容。

1.     安装Node.js

截至目前(20258月)Node-RED官方发布的最新稳定的长期支持版本为Node-RED 4.1.0,对应的Node.js运行要求为Node.js 18 LTS(官方推荐18.20.x及以上)。Node.js的安装包下载地址为:https://nodejs.org/en/download,我们选较新的长期稳定版22.19.0LTS),如图2-1 Node.js下载界面所示。

2-1 Node.js下载界面

1)由于网络环境导致镜像文件下载缓慢,随书资料中会提供Node.js镜像文件,方便快速安装。随后双击下载好的镜像。

2)点击Next按钮,勾选接受协议选项,点击Next按钮。

3Node.js默认安装目录为"C:\Program Files\nodejs\" , 你可以修改目录,并点击Next按钮

4)默认不安装native扩展,Node-RED本身是一个纯JavaScript编写的应用,安装时依赖的模块几乎都是无需编译的纯JS模块,点击Next按钮。

5)点击Install(安装)开始安装Node.js,以上步骤都可以点击Back(返回)来修改先前的配置,如图2-7所示。

6)最后等待Node.js安装完成,点击Finish(完成)按钮退出安装向导。

7)最后一步,我们可以通过Win+R,输入cmd在命令行或Windows Powershell中执行node -vnpm -v,来验证Node.js是否安装成功,如图2-2所示。

2-2 验证Node.js是否安装成功

2.     安装Node-RED

1)为提高国内下载速度,建议将npm默认仓库切换至淘宝镜像。在PowerShell中运行npm config set registry https://registry.npmmirror.com,并通过npm config get registry验证返回地址以npmmirror结尾即可,如图2-3所示。

2-3 npm换淘宝源

2)镜像切换完成后采用全局npm方案,在PowerShell执行npm install -g --unsafe-perm node-red,安装完毕后以npm list -g node-red来验证是否安装成功,如图2-4所示。

2-4 验证Node-RED是否安装成功

3.     运行Node-RED

1)随后运行node-red命令启动Node-RED服务,如图2-5所示。

2-5 启动Node-RED服务

2.1.2 Ubuntu平台安装

# Ubuntu平台安装 > 起始页码:第 13 页 ## 内容概述 本节介绍了 **Ubuntu平台安装** 的相关知识点。 ## 学习要点 - 理解基本概念和原理 - 掌握操作方法和技巧 - 能够独立完成相关实验 ## 小结 通过本节学习,您将对 Ubuntu平台安装 有一个全面的认识。 --- *(内容待完善)*

2.1.3 树莓派部署

# 树莓派部署 > 起始页码:第 17 页 ## 内容概述 本节介绍了 **树莓派部署** 的相关知识点。 ## 学习要点 - 理解基本概念和原理 - 掌握操作方法和技巧 - 能够独立完成相关实验 ## 小结 通过本节学习,您将对 树莓派部署 有一个全面的认识。 --- *(内容待完善)*

2.1.4 Docker容器部署

# Docker容器部署 > 起始页码:第 17 页 ## 内容概述 本节介绍了 **Docker容器部署** 的相关知识点。 ## 学习要点 - 理解基本概念和原理 - 掌握操作方法和技巧 - 能够独立完成相关实验 ## 小结 通过本节学习,您将对 Docker容器部署 有一个全面的认识。 --- *(内容待完善)*

2.2 编辑器初识

# 编辑器初识 > 起始页码:第 18 页 ## 内容概述 本节介绍了 **编辑器初识** 的相关知识点。 ## 学习要点 - 理解基本概念和原理 - 掌握操作方法和技巧 - 能够独立完成相关实验 ## 小结 通过本节学习,您将对 编辑器初识 有一个全面的认识。 --- *(内容待完善)*

2.2.1 编辑器布局

# 编辑器布局 > 起始页码:第 18 页 ## 内容概述 本节介绍了 **编辑器布局** 的相关知识点。 ## 学习要点 - 理解基本概念和原理 - 掌握操作方法和技巧 - 能够独立完成相关实验 ## 小结 通过本节学习,您将对 编辑器布局 有一个全面的认识。 --- *(内容待完善)*

2.2.2 节点、连线、配置节点

# 节点、连线、配置节点 > 起始页码:第 19 页 ## 内容概述 本节介绍了 **节点、连线、配置节点** 的相关知识点。 ## 学习要点 - 理解基本概念和原理 - 掌握操作方法和技巧 - 能够独立完成相关实验 ## 小结 通过本节学习,您将对 节点、连线、配置节点 有一个全面的认识。 --- *(内容待完善)*

2.2.3 部署与调试

# 部署与调试 > 起始页码:第 22 页 ## 内容概述 本节介绍了 **部署与调试** 的相关知识点。 ## 学习要点 - 理解基本概念和原理 - 掌握操作方法和技巧 - 能够独立完成相关实验 ## 小结 通过本节学习,您将对 部署与调试 有一个全面的认识。 --- *(内容待完善)*

2.3 创建并运行Hello Node-RED

# 创建并运行Hello Node-RED > 起始页码:第 23 页 ## 内容概述 本节介绍了 **创建并运行Hello Node-RED** 的相关知识点。 ## 学习要点 - 理解基本概念和原理 - 掌握操作方法和技巧 - 能够独立完成相关实验 ## 小结 通过本节学习,您将对 创建并运行Hello Node-RED 有一个全面的认识。 --- *(内容待完善)*

2.3.1 需求描述

# 需求描述 > 起始页码:第 23 页 ## 内容概述 本节介绍了 **需求描述** 的相关知识点。 ## 学习要点 - 理解基本概念和原理 - 掌握操作方法和技巧 - 能够独立完成相关实验 ## 小结 通过本节学习,您将对 需求描述 有一个全面的认识。 --- *(内容待完善)*

2.3.2 流程搭建步骤

# 流程搭建步骤 > 起始页码:第 24 页 ## 内容概述 本节介绍了 **流程搭建步骤** 的相关知识点。 ## 学习要点 - 理解基本概念和原理 - 掌握操作方法和技巧 - 能够独立完成相关实验 ## 小结 通过本节学习,您将对 流程搭建步骤 有一个全面的认识。 --- *(内容待完善)*

2.3.3 运行验证

# 运行验证 > 起始页码:第 24 页 ## 内容概述 本节介绍了 **运行验证** 的相关知识点。 ## 学习要点 - 理解基本概念和原理 - 掌握操作方法和技巧 - 能够独立完成相关实验 ## 小结 通过本节学习,您将对 运行验证 有一个全面的认识。 --- *(内容待完善)*