node-red
安装
1、安装nodejs和npm
1.1 更新本地包
- 先更新本地包,以免系统包错误
sudo apt update
1.2 安装nodejs和npm
安装nodejs
sudo apt update
安装npm
sudo apt-get install npm
安装完成后查看nodejs和npm版本:
Node-RED需要Node.js 12.x 或更高版本。
node -v
npm -v
1.3 【可选但是建议】切换npm源到淘宝
切换npm源(淘宝):
npm config set registry https://registry.npmmirror.com
查看源地址:
npm config get registry
1.4【可选但是建议】升级nodejs到最新的版本
清除npm缓存:
npm cache clean --force
全局安装n(n是node包管理工具):
sudo npm install -g n
升级nodejs到最新稳定版:
sudo n stable
- 升级完成后,查看nodejs和npm版本是否已更新,一般情况下npm版本会和nodejs一起更新。
- 如果npm未更新到新版本,可以使用下面的命令单独更新:
npm install -g npm@latest
npm install -g npm@latest
2、安装node-red
- 运行node-red安装命令
sudo npm install -g --unsafe-perm node-red
注意:
- 由于网络的原因,安装结果可能会很漫长,如果失败就多运行几次这个安装命令。
- 中途不要断网、断电、异常终端,否则会出现各种异常,常见的有ENOTEMPTY(需要sudo nautilus进入文件系统,手动清空文件重新安装)、ETIMEOUT(重新执行上面命令)。
返回上图表示安装成功,如果失败会有错误提示。
3、运行node-red
- 如果已经安装防火墙,需要在防火墙上打开一个1880端口(Node-RED 默认使用端口 1880)。
sudo ufw allow 1880
启动 Node-RED 本身。
node-red
看到“Welcome to Node-RED”消息即为启动成功。在web中打开 http://localhost:1880即可访问,远程也可以通过http://服务器ip:1880进行访问。
安装教程链接来源。
卸载
# 1.1 卸载 Node-RED 本身
sudo npm uninstall -g node-red# 1.2 卸载相关的全局包
sudo npm uninstall -g node-red-admin
作用和原理
1. 基础架构
Node-RED 运行在一个 Node.js 环境中,使用 Node.js 的事件驱动非阻塞I/O模型。它基于以下几个核心组件:
- 节点(Nodes):这是构成流程的基本单元。节点可以执行各种功能,如输入、输出、函数处理等。
- 流程(Flows):由多个节点通过线(连线)连接起来,形成一个数据流。
- 工作区(Workspace):用户通过浏览器界面编辑和部署流程的地方。
2. 工作原理
节点
- 输入节点:如 HTTP 输入、TCP 输入、文件输入等,用于接收数据。
- 函数节点:允许用户编写 JavaScript 代码来处理数据。
- 输出节点:如 HTTP 输出、TCP 输出、调试输出等,用于发送数据。
- 服务节点:如邮件服务、数据库服务等,用于执行特定任务。
一个节点就如同一个具有特定功能的插件。
流程
流程定义了数据如何从输入节点流向输出节点。每个节点可以处理数据并将其传递给下一个节点。例如,一个 HTTP 请求可以触发一个流程,该流程读取数据,进行一些处理,然后输出结果到另一个服务。
部署和运行
- 部署:用户完成流程的编辑后,可以通过 Node-RED 界面部署流程到服务器(node-red程序所在设备)上。
- 执行:部署后,流程在Node.js 的事件循环中运行。每当输入节点接收到数据时,流程就会被触发执行。
什么是node.js事件循环:
事件循环本质上就是一个"循环监测事件并触发回调的单线程"。
简化模型:
┌───────────────────────────┐
│ 事件循环持续运行 │
│ ↓ │
│ 检查事件队列 │
│ ↓ │
│ 取出事件处理 │
│ ↓ │
│ 执行回调函数 │
│ ↓ │
│ 等待新事件 │
└───────────────────────────┘
使用案例
在前端界面中进行变成之后,想要变更的功能发挥作用,一定要先“部署”。