Ejecutó wrangler dev y no parece vincular Worker KV:
ERROR in /src/handler.ts ./src/handler.ts 16:8-17 [tsl] ERROR in /src/handler.ts(16,9) TS2304: Cannot find name 'generalKV'. Aquí está handler.ts :
async function postHandler(request: Request): Promise<Response> { let content = JSON.stringify(await request.json()); await generalKV.put([Date.now().toString()], JSON.stringify(content)); return new Response(content); } wrangler.toml :
name = "general-assignment" type = "javascript" account_id = "<id>" workers_dev = true compatibility_date = "2021-11-01" kv_namespaces = [ { binding = "generalKV", id = "<id>", preview_id = "<id>" } ] Algunos sugieren cambiar kv_namespaces a kv-namespaces , pero no funciona para mí. Por favor, infórmeme si me perdí algo más.
Para los lectores que llegan a esta pregunta a través de Google y usan Wrangler v2 y reciben este error:
Uncaught (en promesa) ReferenceError: MY_KV no está definido
Los tutoriales y ejemplos descuidan un segundo parámetro (y un tercer parámetro). Este segundo parámetro lo sostiene el entorno . Puede usar y enlazar a kv con estos pasos:
# Create the KV namespaces wrangler kv:namespace create "MY_KV" &&\ wrangler kv:namespace create "MY_KV" --preview wrangler se queja si no hay una vista previa de KV, así que créelos a ambos. A continuación, cree una entrada de matriz kv_namespaces y duplique el preview_id en la sección predeterminada (dev) (indicada como yyyy a continuación).
# wrangler.toml name = "worker" main = "src/index.js" compatibility_date = "2022-04-14" account_id = "...." workers_dev = true routes = [ "exmample.com/*" ] # Duplicate preview_id to id kv_namespaces = [ { binding = "MY_KV", preview_id = "yyyy", id = "yyyy" } ] # Run `wrangler publish --env production` when happy [env.production] kv_namespaces = [ { binding = "MY_KV", id = "xxxx" } ]Luego puede enlazar a kv así:
# index.js export default { async fetch(request, env) { ... const someKV = env.MY_KV.get("some-key"); ... }¿Ya creó manualmente el espacio de nombres KV en Cloudflare? No creo que los cree dinámicamente desde la configuración de enlace en el trabajador (todavía).
Documentación para crear a través de Wrangler -
https://developers.cloudflare.com/workers/cli-wrangler/commands#create