このトピックでは、EdgeRoutine (ER) の組み込みAPI操作について説明します。
コンストラクター
namespaceパラメーターを渡して、エッジキーと値のオブジェクトを作成します。
構文
const edgeKv = new EdgeKV({ namespace: "ns"});
パラメーターの説明
項目
説明
namespace
namespaceパラメーターの値は、Dynamic Route for CDN (DCDN) コンソールで作成した名前空間の名前です。 名前空間リストで名前空間を表示できます。
get
名前空間からデータを読み取ります。
構文
get(key[, {type: “type”}])
パラメーターの説明
項目
説明
key
型はstringです。
type
次のいずれかのタイプを選択できます。
stream: 読み取り可能なストリームを返します。 これはデフォルトのタイプです。
text: 文字列を返します。
JSON: 保存されているJSONコンテンツをオブジェクトに変換し、オブジェクトを返します。
arrayBuffer: バイナリデータを返します。
戻り値
Promiseオブジェクトが返されます。 getメソッドの実行が完了したことを確認するには、waitを呼び出すことができます。
キーが存在しない場合、Promiseオブジェクトは未定義に解決されます。
例外のためにgetメソッドの実行に失敗した場合、Promiseオブジェクトはエラーで拒否されます。
サンプルコード
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
名前空間からキーとその値を削除します。
構文
delete(key)
パラメーターの説明
項目
説明
key
削除するキー。The key that you want to delete. 型はstringです。
戻り値
Promiseオブジェクトが返されます。 waitを呼び出して、deleteメソッドの実行が完了したことを確認できます。
deleteメソッドが成功した場合、Promiseオブジェクトはtrueに解決されます。
deleteメソッドの実行に失敗した場合、Promiseオブジェクトはfalseに解決されます。
deleteメソッドの実行時に例外が発生した場合、Promiseオブジェクトはエラーで拒否されます。
サンプルコード
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; } }
JavaScript例外処理
例外が発生すると、JavaScriptエラーが返されます。 このエラーを無視する場合は、JavaScriptコードでエラーをキャプチャする必要があります。 エラーをキャプチャしない場合、599ステータスコードが返され、リクエストはオリジンサーバーにリダイレクトされます。 リクエストを処理するオリジンサーバーは、Alibaba Cloud CDNまたはDCDNにドメイン名を追加するときに設定するオリジンサーバーです。