本文主要介绍边缘程序(ER)的内置API。
Constructor
传入NameSpace(存储空间名称)创建一个边缘KV实例对象。
- 定义
const edgeKv = new EdgeKV({ namespace: "ns"});
- 参数说明
参数 说明 namespace NameSpace是您在控制台创建的存储空间名称,可在存储空间列表查看。
get
从NameSpace(存储空间)里读取数据。
- 定义
get(key[, {type: “type”}])
- 参数说明
参数 说明 key 类型为string type 类型可为以下任意一种: - stream(默认类型):ReadableStream的形式,返回流式的内容。
- text:返回字符串。
- json:将存储的JSON内容转换成一个Object后再返回。
- arrayBuffer:返回二进制数据。
- 返回值返回一个Promise(可以调用await来确保操作完成):
- 如果key不存在,会返回undefined。
- 如果发生异常导致get失败,reject成error异常。
- 示例代码
addEventListener("fetch", event => { event.respondWith(handleRequest(event.request)) }) async function handleRequest(request) { try { const edgeKV = new EdgeKV({ namespace: "ns" }); let getType = { type: "text" }; let value = await edgeKV.get("key", getType); if (value === undefined) { return "EdgeKV get: key not found"; } else { return new Response(value); } } catch (e) { return "EdgeKV get error" + e; } }
delete
从NameSpace(存储空间)里删除Key及其对应的Value数据。
- 定义
delete(key)
- 参数说明
参数 说明 key 需要删除的Key,类型为string - 返回值返回一个Promise(可以调用await来确保操作完成):
- 如果删除成功,resolve成true。
- 如果删除失败,resolve成false。
- 如果发生异常导致delete失败,reject成error异常。
- 示例代码
addEventListener("fetch", event => { event.respondWith(handleRequest(event.request)) }) async function handleRequest() { try { const edgeKV = new EdgeKV({ namespace: "ns" }); let resp = await edgeKV.delete("key"); if (resp) { return "EdgeKV delete success"; } else { return "EdgeKV delete failed"; } } catch (e) { return "EdgeKV delete error" + e; } }
JS异常处理
发生异常时,会返回JS错误,如果您希望忽略此错误,需要主动在JS代码里对错误进行捕获,否则会返回599状态码并自动降级访问兜底的源站重试(兜底的源站是域名接入CDN/DCDN时配置的源站)。