node.js

关注公众号 jb51net

关闭
首页 > 网络编程 > JavaScript > node.js > Node-Red 部署与启动

Node-Red的部署与启动实现

作者:Oo小刚oO

Node-RED 的架构基于 Node.js 的事件驱动模型,本文详细的介绍了Node-RED的安装步骤及启动参数的作用和使用场景,具有一定的参考价值,感兴趣的可以了解一下

一、Node-RED 运行机制

Node-RED 的架构基于 Node.js 的事件驱动模型,核心由​运行时(Runtime)​、编辑器(Editor)和节点(Nodes)三部分组成,三者协同实现可视化流程编程与执行。​

  1. 运行时( Runtime ):流程执行的 “大脑”​

    • ​核心功能​:负责加载节点、解析流程配置、管理节点间消息传递、处理事件触发,是流程运行的核心引擎。​

    • ​技术细节​:​

      • 基于 Node.js 的EventEmitter模块实现事件监听与触发,确保消息处理的高效性与非阻塞性。​
      • 采用 “流(Flow)” 作为流程的基本单位,每个流由多个节点和连接构成,运行时通过解析 JSON 格式的流配置文件,将节点实例化并建立消息路由。​
      • 支持多流并行运行,不同流之间可通过 “链接节点(Link Node)” 或全局上下文(Context)实现数据交互。​
    • ​消息模型​:​

      • 节点间传递的消息为 msg 对象,默认包含 msg.payload(消息内容)和 msg.topic(消息主题),用户可自定义添加其他属性(如 msg.timestampmsg.source)。​
      • 消息传递支持 “一对一”“一对多”“多对一” 模式,例如一个 “注入节点” 可同时向多个 “函数节点” 发送消息。​
  2. 编辑器( Editor ):可视化开发的 “画布”​

    • ​核心功能​:提供基于浏览器的可视化界面,支持节点拖拽、连接配置、流程保存与部署,是用户与 Node-RED 交互的主要入口。​

    • ​技术细节​:​

      • 编辑器与运行时通过 WebSocket 协议实时通信,实现 “部署即生效”:用户点击 “部署” 后,编辑器将流程配置 JSON 发送至运行时,运行时即时更新并执行流程,无需重启服务。​
      • 支持 “工作区( Workspace )” 分区,可通过标签页切换不同流程,方便大型项目的模块化管理。​
  3. 节点( Nodes ):流程功能的 “积木”​

    • ​核心定位​:节点是封装特定功能的代码模块,是流程的基本功能单元,用户通过组合节点实现业务逻辑。​

    • ​结构组成​:每个节点包含html(编辑器配置界面)、js(运行时逻辑)和package.json(元数据)三部分:​

      • html文件:定义节点在编辑器中的外观(图标、颜色)、配置项(如 API 密钥、端口号),通过RED.nodes.registerType注册节点类型。​
      • js文件:实现节点的运行时逻辑,包括on("input")(接收输入消息触发)、send()(发送输出消息)等核心方法。​
      • package.json:声明节点名称、版本、依赖(如mqtt库)、兼容的 Node-RED 版本等信息。

二、安装Node-Red

2.1 安装NVM

这里以Linux系统为例,推荐使用NVM安装NodeJS,方便后续管理

bash -c "$(curl -fsSL https://gitee.com/RubyMetric/nvm-cn/raw/main/install.sh)"
source ~/.nvm/nvm.sh

2.2 安装NodeJS

nvm install v22.16.0

2.3 安装Node-Red

npm install -g --unsafe-perm node-red

2.4 Node-Red的自启动

npm install -g pm2
pm2 start node-red --node-args="--max-old-space-size=1024"  #根据实际内存自行调整
pm2 save
pm2 startup

三、Node-Red的启动参数

3.1 启动命令

node-red [-v] [-?] [--settings settings.js] [--userDir DIR]
         [--port PORT] [--title TITLE] [--safe] [flows.json|projectName]
         [-D X=Y|@file]

3.2 参数说明

3.3 参数示例

3.3.1 启用详细输出

3.3.2 显示帮助信息

3.3 指定配置文件 {#boot-custom-settings}

3.4 指定用户目录

3.5 指定监听端口

3.6 设置进程窗口标题

3.7 安全模式启动

3.8 指定流程文件或项目名

该参数分两种场景(取决于是否启用 “项目功能”),示例分别如下:

场景 1:未启用项目功能(指定流程文件)
场景 2:已启用项目功能(指定项目名)

3.9 覆盖单个配置

四、版本升级

sudo npm install -g --unsafe-perm node-red

到此这篇关于Node-Red的部署与启动实现的文章就介绍到这了,更多相关Node-Red 部署与启动内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家! 

您可能感兴趣的文章:
阅读全文