nodeRed 源码分析7- runtime settings模块分析

所依赖的库

  • clone
    • https://www.npmjs.com/package/clone
    • 提供了对JavaScript中的对象、数组、数字、字符串、map、sets、promises等的深度克隆。

文件域变量

localSettings :本地设置,来源于用户目录下的文件settings.js
globalSettings :全局设置,来源于\node_modules\node-red.config.json
nodeSettings :节点设置
userSettings:用户设置,为全局设置的子部分,但区分各个用户
persistentSettings:本模块的导出对象

API

Function Description
init 初始化localSettings,将persistentSettings变量的方法全改为只读
load 从存储模块中加载userSettings
get 取配置,先从本地设置,再找全局设置
set 设置全局设置,其他设置都为只读,报异常
delete 删除节点后,调用
available 判断 globalSettings 是否已加载完成(用以判断本模块是否加载)
reset 清空 所有文件域变量
registerNodeSettings 设置节点的额外属性(属性存在于settings.js中),注册到nodeSettings中
exportNodeSettings 根据节点设置nodeSettings的属性(exportable),导出
enableNodeSettings 启用节点类型后,调用
disableNodeSettings 禁用节点类型后,调用
getUserSettings 在用户登陆操作后,获取用户设置
setUserSettings 在用户修改设置后,进行保存

涉及文件

  1. packages\node_modules@node-red\runtime\lib\settings.js

代码分析

参与流程

在这里插入图片描述

在这里插入图片描述

例子

  1. 向nodeSettings进行注册
RED.nodes.registerType("debug",DebugNode, {
    settings: {
        debugUseColors: {
            value: false,
        },
        debugMaxLength: {
            value: 1000,
        }
    }
});

猜你喜欢

转载自blog.csdn.net/lxmuyu/article/details/113611235