用途:为 Expo Router 应用编写服务端 API 路由(+api.ts),适合需要服务端密钥、数据库操作、第三方 API 代理、服务端校验、Webhook、限流或重计算的场景;数据公开、无密钥、需实时更新、简单 CRUD、文件上传或仅做鉴权时则不推荐。
主要能力:文件即路由,app/api/hello+api.ts 对应 GET /api/hello,支持 [id]+api.ts 动态路由;通过导出 GET、POST、PUT、DELETE、OPTIONS 等命名函数处理各 HTTP 方法;可读取查询参数、请求头、JSON 请求体,返回 Response.json 并指定状态码;使用 process.env 存服务端密钥;可为 Web 客户端添加 CORS 头。
使用方式:本地用 npx expo serve 在 http://localhost:8081 测试,可用 curl 验证;部署前安装 eas-cli(npm install -g eas-cli)并 eas login,再执行 eas deploy 部署到 EAS Hosting(Cloudflare Workers);生产环境变量用 eas env:create --name OPENAI_API_KEY --value sk-xxx --environment production 配置;自定义域名在 eas.json 或 Expo 面板设置。
限制:运行于 Cloudflare Workers,无 Node 文件系统、无原生 Node 模块、CPU 密集任务约 30 秒超时、无持久连接(WebSocket 需 Durable Objects);应改用 Web API(如 crypto.subtle、fetch)。因无文件系统,数据库需用云端方案,如 Cloudflare D1、Turso、PlanetScale、Supabase、Neon;官方建议始终校验输入、使用正确状态码、错误用 try/catch 处理并在服务端记录。