2021-07-12-nodeRed 源码分析6- storage 存储模块分析

storage 存储模块分析#

所依赖的库#

  • when
  • path
  • crypto

API#

存储API使用插件式配置Node-RED运行时存储数据

Function Description
Storage.init(settings) initialise the storage system
Storage.getFlows() get the flow configuration
Storage.saveFlows(flows) save the flow configuration
Storage.getCredentials() get the flow credentials
Storage.saveCredentials(credentials) save the flow credentials
Storage.getSettings() get the user settings
Storage.saveSettings(settings) save the user settings
Storage.getSessions() get the user sessions
Storage.saveSessions(sessions) save the user sessions
Storage.getLibraryEntry(type,name) get a type-specific library entry
Storage.saveLibraryEntry(type,name,meta,body) save a type-specific library entry

涉及文件#

  1. start流程()
    1. .config.json 或 .config.nodes.json
      1. 首先查看环境目录下 process.env.NODE_RED_HOME
      2. 再查看用户环境目录 process.env.HOMEPATH
      3. 都没有,找 process.env.HOME || process.env.USERPROFILE || process.env.HOMEPATH || process.env.NODE_RED_HOME,”.node-red”
    2. package.json
      1. 用户目录下
    3. .sessions.json
      1. 用户目录下
      2. 维护会话信息:用户名,密码,token,超时时间
      3. 每一个建立的会话都会记录
    4. flows_hostname().json 和 flows_hostname().json.backup
      1. 用户目录下,流文件和备份文件
    5. flows_hostname()_cred.json 和 flows_hostname()_cred.json.backup
      1. 用户目录下
      2. 用以保存节点中以.credentials保存的信息,加密与否可使用配置文件中credentialSecret参数配置
    6. .config.runtime.json
      1. 运行时配置
    7. .config.users.json
      1. 用户配置
    8. .config.nodes.json
      1. 节点配置
    9. .config.projects.json
      1. Git 配置

代码分析#

参与流程#

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

作者

lxmuyu

发布于

2022-02-17

更新于

2022-03-11

许可协议