Skip to content

Server

基于 Hono 框架的后端服务,运行在 Cloudflare Workers 上。

技术栈

  • Hono - Web 框架(专为边缘环境优化)
  • Cloudflare Workers - 边缘计算平台
  • Prisma 7 - ORM(使用 Accelerate 或 Adapter)
  • Zod - Schema 验证
  • Vitest - 测试框架

开发

bash
pnpm dev

构建

bash
pnpm build

部署

bash
pnpm deploy

数据库

连接方案

Cloudflare Workers 运行在 V8 isolate 环境中,不支持直接的 TCP 连接。项目支持两种数据库连接方案:

  1. Prisma Accelerate(推荐)- 通过 HTTP API 连接数据库
  2. Prisma Adapter - 使用 PostgreSQL adapter(仅 Node.js 环境)

配置

bash
# 推送 schema
pnpm db:push

# 生成 Prisma Client
pnpm db:generate

详细数据库配置请查看 数据库文档

API 路由

  • POST /api/v1/auth/login - 用户登录
  • POST /api/v1/auth/register - 用户注册
  • POST /api/v1/auth/verify - 验证 token
  • GET /api/v1/auth/me - 获取当前用户信息

环境变量

详细环境变量配置请查看 Server README

必需:

  • JWT_SECRET - JWT 密钥(至少 32 字符)
  • ACCELERATE_URLDATABASE_URL - 数据库连接

注意:Cloudflare Workers 环境使用 ACCELERATE_URL,自托管 Node.js 环境使用 DATABASE_URL

数据库连接方案

Prisma Accelerate(推荐)✅

当前项目使用的方案

Prisma Accelerate 是一个连接池和缓存服务,通过 HTTP API 连接数据库:

优点:

  • ✅ 专为边缘环境设计
  • ✅ 连接池管理(避免连接数限制)
  • ✅ 查询缓存(提升性能)
  • ✅ 支持所有 Prisma 功能
  • ✅ 有免费开发计划

获取方式:

  1. 访问 https://accelerate.prisma.io/
  2. 注册并创建项目
  3. 获取 Accelerate URL

Prisma Adapter(已实现)✅

Prisma 7 支持通过 adapter 连接数据库:

注意:

  • ⚠️ 在 Cloudflare Workers 中可能不工作:PostgreSQL adapter 需要 TCP 连接,而 Workers 只支持 fetch API
  • ⚠️ 如果 adapter 失败,会自动提示使用 Prisma Accelerate
  • ✅ 在 Node.js 环境中可以正常工作

使用方式:

  • 如果设置了 ACCELERATE_URL,优先使用 Accelerate
  • 如果没有 ACCELERATE_URL 但有 DATABASE_URL,会尝试使用 adapter
  • 如果 adapter 失败,会提示使用 Accelerate

总结

方案支持 PostgreSQL成熟度推荐度
Prisma Accelerate⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐
Prisma Adapter⭐⭐

结论: 对于 PostgreSQL + Cloudflare Workers,Prisma Accelerate 是最佳选择

Released under the MIT License.