Node-RED-Storage-API中文一览
Storage API
Storage API 提供了一种可插拔的方式来配置 Node-RED 运行时存储数据的位置。
API 存储的信息包括:
- 流配置
- 流凭证
- 用户设置
- 用户会话
- 节点库内容
默认情况下,Node-RED 使用此 API 的本地文件系统实现。
此处记录了 API 函数。
配置
settings.js 中的属性可用于标识自定义模块 使用方法:storageModule
1 | storageModule: require("my-node-red-storage-plugin") |
约定
API 广泛使用了 JavaScript Promise。
Promise 表示异步作的最终结果。在结果可用之前,它充当占位符。
Node-RED 使用 When.js 库。下面的示例显示了它的使用情况。有关更完整的示例,默认文件系统实现位于 red/runtime/storage/localfilesystem.js
中
1 | function getFlows() { |
方法
存储插件是一个node.js模块,它在 module.exports
功能 | 描述 |
---|---|
Storage.init(settings) | 初始化存储系统 |
Storage.getFlows() | 获取 Flow 配置 |
Storage.saveFlows(flows) | 保存流配置 |
Storage.getCredentials() | 获取流凭证 |
Storage.saveCredentials(credentials) | 保存流凭证 |
Storage.getSettings() | 获取用户设置 |
Storage.saveSettings(settings) | 保存用户设置 |
Storage.getSessions() | 获取用户会话 |
Storage.saveSessions(sessions) | 保存用户会话 |
Storage.getLibraryEntry(type, name) | 获取特定于类型的库条目 |
Storage.saveLibraryEntry(type, name, mata, body) | 保存特定于类型的库条目 |
Storage.init(settings)
初始化存储系统。
参数 | 描述 |
---|---|
settings | 运行时设置 |
返回一个 Promise,该 Promise 在初始化存储系统时 resolve。
Storage.getFlows()
返回使用运行时流配置解析的 Promise。
Storage.saveFlows(flows)
参数 | 描述 |
---|---|
flows | 流配置对象可以序列化为 JSON。 |
返回一个 Promise,该 Promise 在保存流配置后解析。
Storage.getCredentials ()
返回使用运行时流凭证解析的 Promise。
Storage.saveCredentials(credentials)
参数 | 描述 |
---|---|
credentials | credentials 对象可以序列化为 JSON。 |
返回一个 Promise,该 Promise 在保存流凭证后解析。
Storage.getSettings()
返回一个 Promise,该 Promise 会随着用户设置而解析。
Storage.saveSettings(settings)
参数 | 描述 |
---|---|
settings | settings 对象可以序列化为 JSON。 |
返回一个 Promise,该 Promise 在保存设置后 resolve。
Storage.getSessions()
返回使用 sessions 对象解析的 Promise。
Storage.saveSessions(sessions)
参数 | 描述 |
---|---|
sessions | sessions 对象可以序列化为 JSON。 |
返回一个 Promise,该 Promise 在保存会话后 resolve。
库函数
注册库类型的节点允许用户在本地库中保存和检索内容。存储模块的以下功能用于访问此内容。
条目可能具有与之关联的元数据,例如,函数
条目包含标识函数提供多少个输出的元数据。
Storage.getLibraryEntry(type, name)
参数 | 描述 |
---|---|
type | 库条目的类型,例如 flows、functions、templates |
name | 要返回的条目的路径名 |
返回一个 Promise,该 Promise 以结果解析。
如果 name
表示单个条目,则结果是该条目的内容。例如,函数的代码。
如果 name
表示逻辑目录,则结果是一个目录列表数组。数组的每个元素要么是一个字符串(表示可以浏览的子目录),要么是一个具有 fn
属性的对象,该属性提供条目的文件名,以及与该条目关联的任何其他元数据。
1 | [ 'directory1', |
Storage.saveLibraryEntry(type, name, meta, body)
参数 | 描述 |
---|---|
type | 库条目的类型,例如 flows 、functions 、templates |
name | 条目的路径名 |
mata | 一个对象,其中包含要与条目一起保存的其他元数据 |
body | 条目的正文 |
返回一个 Promise,该 Promise 在保存条目后 resolve。
已弃用的库函数
在 0.10.7 版本之前,存储模块也使用了以下函数。
此接口的新实现不应实现这些函数。
如果存在它们以实现向后兼容性,则运行时将使用它们,但会在将其 type
参数设置为 'flows'
的情况下使用它们 getLibraryEntry/saveLibraryEntry
。
Storage.getAllFlows()
返回一个 Promise,该 Promise 解析为包含完整列表 Library 中的所有流。
Storage.getFlow(name)
返回解析为流内容的 Promise。
Storage.saveFlow(name, flow)
返回一个 Promise,该 Promise 在将 flow 保存到库时解析。