自 1.3.0 版本起
Node-RED 编辑器中的导入/导出对话框提供了一种将流程和节点保存到本地库的方法。
该本地库由 Storage API 管理。默认情况下,存储在 ~/.node-red/lib
下。
图书馆商店 API 是一种插件机制,可用于提供将其内容存储在其他位置的库——不仅仅是在本地文件中。
Node-RED 提供了一个 文件存储插件,可以用于添加存储在本地文件系统上的库。例如,这可以用来通过像 Dropbox 这样的工具在共享文件系统上创建库,从而便于与其他合作开发者共享流程。
~/.node-red/settings.js
editorTheme
部分,并在不存在时添加 library
部分。在该部分下添加 sources
数组。在该数组中您可以添加任意数量的新文件存储源。
editorTheme: {
library: {
sources: [
{
id: "team-collaboration-library",
type: "node-red-library-file-store",
path: "/Users/tom/work/team-library/",
label: "团队协作",
icon: "font-awesome/fa-users"
}
]
},
}
配置对象可以具有以下属性:
属性 | 描述 |
---|---|
id |
必填 库的唯一的、url 安全的标识符。应仅包含字母、数字和符号 - _ 。 |
type |
必填 必须设置为 node-red-library-file-store |
path |
必填 库应存储的绝对路径 |
label |
编辑器中使用的可选标签,否则将使用 id 。 |
icon |
FontAwesome 4.7 中的可选图标。 |
types |
默认情况下,库将用于存储所有类型的对象。可以通过将此属性设置为可接受类型的数组来限制为某些类型。 例如,要限制为仅流程,将此属性设置为 ["flows"] 。 |
readOnly |
将此库设置为只读库,以便只能用于导入,设置此属性为 true 。 |
要创建一个由不同类型的存储支持的存储,您需要创建一个新的插件。
该插件作为 npm 模块打包,包含 package.json
文件。
以下代码可以作为插件的起始点。您还应参考 文件存储插件。
{
"name": "your-custom-library-store",
"version": "1.0.0",
"description": "Node-RED 的自定义库插件",
"keywords": [
"node-red"
],
"node-red": {
"plugins": {
"customstore": "store.js"
}
}
}
```javascript module.exports = function(RED) {
// 这必须是库存储类型的唯一标识符
const PLUGIN_TYPE_ID = "node-red-library-custom-store";
class CustomStorePlugin {
/**
* @param {object} config 包含存储实例配置的对象
*/
constructor(config) {
// 必填属性
this.type = PLUGIN_TYPE_ID;
this.id = config.id;
this.label = config.label;
}
/**
* 初始化存储。
*/
async init() {
}
/**
* 从存储中获取条目
* @param {string} type 条目的类型,例如 "flow"
* @param {string} path 库条目的路径
* @return 如果 'path' 解析到单个条目,则返回该条目的内容。
* 如果 'path' 解析到 'directory',则返回目录内容的列表
* 如果 'path' 无效,则应抛出适当的错误
*/
async getEntry(type, path) {
throw new Error("尚未实现")
}
/**
* 将条目保存到库中
* @param {string} type 条目的类型,例如 "flow"
* @param {string} path 库条目的路径
* @param {object} meta 关于条目的键/值元数据的对象
* @param {string} body 条目内容
*/
async saveEntry(type, path, meta, body) {
throw new Error("尚未实现")
}
}
// 注册插件。
RED.plugins.registerPlugin(PLUGIN_TYPE_ID, {
// 这会告诉 Node-RED 插件是一个库源插件
type: "node-red-library-source",
class: CustomStorePlugin
}) }
版权所有 OpenJS Foundation 和 Node-RED 贡献者。保留所有权利。OpenJS Foundation 拥有并使用注册商标。有关 OpenJS Foundation 的商标列表,请参阅我们的 商标政策 和 商标列表。未在 OpenJS Foundation 商标列表 中列出的商标和徽标是其各自持有者的商标™或注册商标®。使用它们并不意味着与它们有任何关联或认可。
OpenJS Foundation | 使用条款 | 隐私政策 | OpenJS Foundation 章程 | 商标政策 | 商标列表 | Cookie 政策