本文主要介紹邊緣程式(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時配置的來源站點)。