NodeRed结构
NodeRed既包含后端也包含前端。后端基于Node.js,同时包含 Express 框架。
Express 是一个保持最小规模的灵活的 Node.js Web 应用程序开发框架,为 Web 和移动应用程序提供一组强大的功能。
NodeRed中的Express工作流
%%配置
%%{init: {'theme': 'base', 'themeVariables': { 'primaryColor': '#FFFFFF'}}}%%
sequenceDiagram
autonumber
%%实现
title: NodeRed中的Express之路由配置
packages\node_modules\nodered\red.js ->> packages\node_modules\nodered\red.js: express() 创建app,为web服务提供入口
packages\node_modules\nodered\red.js ->> packages\node_modules\nodered\red.js: http.createServer,以app为处理函数,express提供路由、中间件处理
packages\node_modules\nodered\red.js ->> packages\node_modules\nodered\red.js:根据httpAdminRoot、httpNodeRoot、httpStatic等变量,做根目录‘/’的路由,将根路径'/'路由到RED.httpAdmin(adminApp)上,将根路径'/'路由到RED.httpNode(runtime.httpNode ==nodeApp)上,配合httpin节点,实现节点内的http服务处理
packages\node_modules\nodered\red.js ->> packages\node_modules\@nodered\runtime\lib\index.js : 配置runtimeb子路由 ( adminApp )
packages\node_modules\nodered\red.js ->> packages\node_modules\@nodered\editorapi\lib\index.js : 配置editorapi路由,创建 nodeApp 、 adminApp 子路由
packages\node_modules\@nodered\editorapi\lib\index.js ->> packages\node_modules\@nodered\editorapi\lib\editor\index.js : 配置editor editor模块路由,创建 editorApp 子路由
packages\node_modules\@nodered\editorapi\lib\index.js ->> packages\node_modules\@nodered\editorapi\lib\admin\index.js : 配置editorapi admin模块路由,创建 adminApp 子路由
%%配置
%%{init: {'theme': 'base', 'themeVariables': { 'primaryColor': '#FFFFFF'}}}%%
sequenceDiagram
autonumber
%%实现
title: NodeRed中的Express之Web服务启动
packages\node_modules\nodered\red.js ->> packages\node_modules\nodered\red.js: 完成初始化后,server.listen 配置参数 settings.uiPort settings.uiHost,启动服务