You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Remix.run数据加载函数中访问Cloudflare D1绑定服务?

在Remix.run数据加载函数中访问Cloudflare D1绑定

在Cloudflare Workers环境下运行Remix时,D1这类服务绑定不会出现在全局的.env.vars中——它们是Worker Runtime提供的特殊服务实例,而非普通字符串环境变量,需要通过Remix加载函数的context参数获取。

具体实现方式:

  • 在路由的loader函数中,直接从context.env里调用配置好的DB绑定:

    import type { LoaderFunction } from "@remix-run/cloudflare";
    
    export const loader: LoaderFunction = async ({ context }) => {
      // 示例:执行D1查询
      const queryResult = await context.env.DB.prepare("SELECT * FROM your_table").all();
      return { data: queryResult.results };
    };
    
  • 如果你使用TypeScript,可自定义Env接口来获得类型提示:

    import type { LoaderFunction } from "@remix-run/cloudflare";
    import type { D1Database } from "@cloudflare/workers-types";
    
    interface Env {
      DB: D1Database;
    }
    
    export const loader: LoaderFunction<Env> = async ({ context }) => {
      const result = await context.env.DB.prepare("SELECT * FROM your_table").all();
      return { data: result.results };
    };
    

本地开发说明:

只要你已经通过wrangler.toml正确配置了D1绑定,运行wrangler dev时Remix会自动继承Worker的绑定配置,无需将DB添加到.env文件中。

内容的提问来源于stack exchange,提问作者Meow

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.19 14:50:24