上下文存储 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])

参数 描述
scope 键的作用域
key 要返回值的键或键的数组。
callback 可选 一个回调函数,用于调用键值

key 参数可以是一个标识单个键的字符串,或一个标识多个键的字符串数组 以返回相应的值。

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

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

}

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

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

参数 描述
scope 键的作用域
key 要设置值的键或键的数组。
value 值或值的数组
callback 可选 当值被设置时调用的回调函数

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

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

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

function callback(error) {

}

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

ContextStore.keys(scope, [callback])

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

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

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

function callback(error, keys) {

}

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

ContextStore.delete(scope)

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

ContextStore.clean(activeNodes)

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

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