你现在的站点不是静态导出,而是Next.js App Router 跑在 Cloudflare Pages 的 SSR/Functions上。
这意味着:你的 API(例如/api/footprints留言)本质是Cloudflare Worker 运行时,它拿数据库不是走“公网连接串”,而是走 Cloudflare 的Binding 注入:
你在 Cloudflare Dashboard 里给 Pages 项目绑定一个 D1
运行时里,
env.DB就直接可用(无需 host/port/password)迁移文件(
migrations/*.sql)用 wrangler 推上去,数据库结构能版本化
这就是“DB 方式部署”的核心。
1)为什么 D1 是“绑定式数据库”,不是“外部数据库连接”
传统数据库部署(例如 MySQL / Postgres)会遇到:
需要公网地址、白名单、连接池、密码轮换
Functions/Serverless 会遇到冷启动、并发