功能概述
提供运行时与节点相关的接口,如节点注册、流程增删改查、节点模块处理、上下文等。
所依赖的三方库
- when
- path
- fs
- clone
- util
文件域变量
- @node-red/registry
- 为runtime提供节点注册、响应、发现及管理功能
- credentials
- 封装credentials相关操作
- context
- 提供上下文环境,可定义变量、保存等
- Node
- 为所有新建立的节点提供初始化
API
Function | Description |
---|---|
// Lifecycle | ---- |
init | 初始化函数,调用涉及的几个模块的init方法 |
load | 加载依赖模块 |
// Node registry | ---- |
createNode | 调用Node模块创建一个节点,并配置credentials |
getNode | 调用flow模块获取节点 |
eachNode | 调用flow模块遍历所有节点,可传入回调函数 |
getContext | 调用context模块获取上下文 |
installModule | 安装一个模块 |
uninstallModule | 删除一个模块 |
enableNode | 启用一个模块 |
disableNode | 禁用一个模块 |
// Node type registry | ---- |
registerType | 调用registry模块注册节点 |
getType | 调用registry模块获取节点类型 |
getNodeInfo | 调用registry模块获取节点信息 |
getNodeList | 调用registry模块获得已安装的node modules |
getModuleInfo | 调用registry模块获得node module信息 |
getNodeConfigs | 调用registry模块获取所有节点的html内容 |
getNodeConfig | 调用registry模块获取某个node的html内容 |
getNodeIconPath | 调用registry模块获取某个node的图标 |
getNodeIcons | 调用registry模块获取所有节点的图标 |
getNodeExampleFlows | 调用registry模块获取示例流程 |
getNodeExampleFlowPath | 调用registry模块获取示例流程目录 |
clearRegistry | 调用registry模块清除registry模块内容 |
cleanModuleList | 调用registry模块清除模块列表 |
// Flow handling | ---- |
loadFlows | 调用flow模块完成流程加载 |
startFlows | 调用flow模块完成流程启动 |
stopFlows | 调用flow模块完成流程结束 |
setFlows | 调用flow模块完成全部流程的设置 |
getFlows | 调用flow模块返回所有流程 |
addFlow | 调用flow模块返回增加流程 |
getFlow | 调用flow模块返回获取流程 |
updateFlow | 调用flow模块更新获取流程 |
removeFlow | 调用flow模块更新删除流程 |
// Credentials | ---- |
addCredentials | 调用credentials模块增加凭证 |
getCredentials | 调用credentials模块获取凭证 |
deleteCredentials | 调用credentials模块删除凭证 |
getCredentialDefinition | 调用credentials模块获取凭证定义 |
setCredentialSecret | 调用credentials模块设置凭证密码 |
clearCredentials | 调用credentials模块清除凭证 |
exportCredentials | 调用credentials模块导出凭证 |
getCredentialKeyType | 调用credentials模块获取凭证类型 |
// Contexts | ---- |
loadContextsPlugin | 调用context模块加载上下文保存插件 |
closeContextsPlugin | 调用context模块关闭上下文保存插件 |
listContextStores | 调用context模块罗列上下文保存插件 |
涉及文件
- packages\node_modules@node-red\runtime\lib\nodes\index.js
代码分析
参与流程
例子
- 使用html参数创建节点
function MQTTBrokerNode(n) {
RED.nodes.createNode(this,n);
}
- 使用html参数创建节点
function MQTTBrokerNode(n) {
this.brokerConn = RED.nodes.getNode(this.broker);//根据ID从已注册的节点中找
}