上下文存储 API

0.19 中的新功能

上下文存储 API 提供了一种可插拔的方式来配置上下文数据的存储位置。

默认情况下,Node-RED 使用一个 基于内存的实现 来实现此 API。它也提供了一个 基于文件的实现

要创建自定义的上下文存储,应该创建一个实现 存储模块 API 的模块。

配置

可以使用 settings.js 中的 contextStorage 属性来配置上下文存储。

它是一个对象,包含一个或多个命名的上下文存储配置。

contextStorage: {
   default: {
       module:"memory",
       config: {
           customOption: 'value'
       }
   }
}

每个上下文存储配置由两个部分组成;module 属性和 config 属性。

module 属性标识要使用的上下文存储插件。它可以是内置模块的名称(当前为 memorylocalfilesystem),或应该是通过 require 加载的模块。

contextStorage: {
   default: {
       module:"memory",
   },
   custom: {
       module:require("my-custom-store")
   }
}

config 属性是传递给模块的对象,用于提供自定义选项。

存储模块 API

自定义插件的模块必须导出一个构造函数。这当需要插件的新实例时会调用该函数。该函数接受给定实例的 config 属性的值。这使得运行时可以有多个相同存储插件的实例,每个实例都有自己的配置。

var ContextStore = function(config) {
    this.config = config;
}

ContextStore.prototype.open = function() { ... }


module.exports = function(config){
    return new ContextStore(config);
};

构造函数返回的对象必须实现所有在 这里 详细说明的函数。