Cloudflare KV 命名空间未从“wrangler dev”定义

问题描述 投票:0回答:1

我已经阅读了我能找到的所有文档和 SO 帖子,但在使用

wrangler dev
在本地运行我的工作程序时,我仍然收到“sonarkv 未定义”的消息。这是我所做的:

  • 创建了预览命名空间:

$ wrangler kv:namespace create "sonarkv" --preview

  • 将其添加到 wrangler.toml 中:
kv_namespaces = [
    { binding = "sonarkv", id = "5138eb663ac04eb6af5fe72d11966626", preview_id = "67e98d40e1e74329bf2c30dd92289fce" }
]
  • 已验证:

$ wrangler kv:key list --binding sonarkv --preview

[
  {
    "name": "somekey"
  }
]

$ wrangler kv:key get somekey --binding sonarkv --preview

<...correct value...>
  • 并在我的工作脚本中引用了它:
    const secret = await sonarkv.get("somekey");
  • 牧马人版本:
$ wrangler --version
 ⛅️ wrangler 3.9.0
------------------

我在这里缺少什么?是否需要在仪表板中单独绑定预览命名空间? (当我尝试时,它失败并显示“具有该名称的变量已存在”。)

cloudflare cloudflare-workers cloudflare-kv
1个回答
0
投票

想通了。尽管在我能找到的任何地方都没有记录这一点,但您现在需要从

env
中可选给出的
fetch()
参数中提取命名空间绑定。所以:

export default {
    async fetch(request, env) {
    ...
    const secret = await env.sonarkv.get("somekey");
    ...
}
© www.soinside.com 2019 - 2024. All rights reserved.