上下文存储 API

0.19 版本新增

上下文存储插件是一个 Node.js 模块,它通过其 module.exports 导出一个函数,该函数可用于创建插件的新实例。该函数返回的对象必须包含以下函数:

函数 描述
ContextStore.open() 打开存储以供使用
ContextStore.close() 关闭存储
ContextStore.get(scope, key, callback) 从存储中获取值
ContextStore.set(scope, key, value, callback) 在存储中设置值
ContextStore.keys(scope, callback) 获取存储中所有键的列表
ContextStore.delete(scope) 删除给定作用域的所有键
ContextStore.clean(activeNodes) 清理上下文存储

ContextStore.open()

打开存储以供使用。在访问任何存储值之前调用此函数。

返回一个 Promise,当存储准备好访问时解析。

ContextStore.close()

当运行时停止时调用,因此不会再访问任何键值。

返回一个 Promise,当存储关闭时解析。

ContextStore.get(scope, key, [callback])

参数 描述
作用域 键的作用域
要返回其值(或多个值)的键,或键数组。
回调 可选,一个回调函数,用于使用键值进行调用

key 参数可以是一个标识单个键的字符串,也可以是一个标识要返回其值(或多个值)的多个键的字符串数组。

如果提供了可选的 callback 参数,它必须是一个接受两个或更多参数的函数。

function callback(error, value1, value2, ... ) {

}

如果没有提供回调,并且存储支持同步访问,则 get 函数应返回单个值或键的值数组。如果存储不支持同步访问,则应抛出错误。

ContextStore.set(scope, key, value, [callback])

参数 描述
作用域 键的作用域
要设置其值(或多个值)的键,或键数组。
值,或值数组
回调 可选,一个回调函数,在值设置后调用

key 参数可以是一个标识单个键的字符串,也可以是一个标识要设置的多个键的字符串数组。

操作
字符串 任意 value 存储在 key 下。
数组 数组 value 数组的每个元素存储在相应的 key 值下。如果 value 的元素少于 key,则将缺失的值设置为 null
数组 非数组 value 存储为第一个键的值 - 对任何剩余的键使用 null

如果提供了可选的 callback 参数,它将在值存储后被调用。它接受一个参数 error,以指示存储值时遇到的任何错误。

function callback(error) {

}

如果没有提供回调,并且存储支持同步访问,则 set 函数应在值存储后返回。如果存储不支持同步访问,则应抛出错误。

ContextStore.keys(scope, [callback])

参数 描述
作用域 要返回键的作用域
回调 可选,一个回调函数,用于使用键列表进行调用

获取给定作用域下的所有键的列表。

如果提供了可选的 callback 参数,它必须是一个接受两个或更多参数的函数。

function callback(error, keys) {

}

如果没有提供回调,并且存储支持同步访问,则 keys 函数应返回键数组。如果存储不支持同步访问,则应抛出错误。

ContextStore.delete(scope)

参数 描述
作用域 要删除的作用域

ContextStore.clean(activeNodes)

参数 描述
活跃节点 所有仍然活跃的节点/流 ID 列表

返回一个 Promise,当存储删除任何不再需要的上下文作用域时解析。activeNodes 列表可用于识别哪些节点和流仍然被认为是活跃的。