Dart Frog 第5部分:使用 Dart Globe 部署您的后端服务 🌍
Source: Dev.to
前置条件(来自前几部分)
-
来自第 4 部分的 Dart Frog 项目(包含身份验证、受保护路由、内存或简单数据库)。
-
Globe 账户(免费注册)。
-
已安装 Globe CLI:
dart pub global activate globe_cli -
已登录:
globe login -
已安装 Dart Frog CLI(本系列已完成安装)。
-
本地已构建一次:
dart_frog build # 在 /build 中创建优化后的生产二进制文件
第 1 步:为生产环境准备项目
Globe 会自动检测 Dart Frog 项目,但进行少量调整可以确保顺利运行。
监听正确的端口
Dart Frog 默认使用 8080,而 Globe 使用 PORT 环境变量。请在 main.dart(或启动服务器的文件)中进行更新:
import 'dart:io';
import 'package:dart_frog/dart_frog.dart';
void main() async {
final port = int.parse(Platform.environment['PORT'] ?? '8080');
await serve(handler, InternetAddress.anyIPv4, port);
}
密钥与环境变量
对于 JWT 密钥(第 4 部分中使用的),请改用 Globe 的环境变量面板,而不是硬编码:
final secret = Platform.environment['JWT_SECRET'] ?? 'fallback-dev-secret';
CORS(如有需要)
在处理器之前添加所需的 CORS 中间件,例如:
import 'package:shelf_cors_headers/shelf_cors_headers.dart';
final handler = const Pipeline()
.addMiddleware(corsHeaders())
.addHandler(yourRouter);
本地构建
dart_frog build
这会编译出 Globe 能高效运行的 AOT 二进制文件。
部署到 Globe
在项目根目录执行:
globe deploy
- CLI 会引导你创建或关联项目并选择名称(例如
todo-project)。 - Globe 会自动检测 Dart Frog 结构,应用相应的预设并构建 AOT 二进制文件。
- 若要进行生产级部署,请添加
--prod参数:
globe deploy --prod
部署成功后
-
URL:
https://your-project-name.globeapp.dev(以后可绑定自定义域名)。 -
测试接口: 使用 Postman 或
curl访问线上地址,例如:curl -H "Authorization: Bearer <TOKEN>" https://todo-api-samuel.globeapp.dev/todos
第 3 步:部署后提示
- 环境变量: 仪表盘 → 项目 → 设置 → 环境变量 → 添加
JWT_SECRET、数据库凭证等。 - 扩展与性能: 按需自动扩容;尽可能使用边缘缓存。
- 日志与监控: 内置日志和指标仪表盘。
- 自定义域名: 在设置中添加(SSL 会自动配置)。
- CI/CD: 关联 GitHub 仓库,实现推送自动部署。
- 费用: 免费层对初学者相当慷慨,之后按使用量付费。
实时测试完整的全栈应用
将 Flutter 应用中 Dio 的 baseUrl 更新为你的 Globe 地址:
final Dio _dio = Dio(BaseOptions(baseUrl: 'https://your-project-name.globeapp.dev'));
运行 Flutter 应用 → 通过线上后端安全地进行 Todo 的增删改查。全栈 Dart 正式上线!
源代码
通过给仓库加星并关注作者来表达一点 ❤️。