用途
relic-app-setup 用于引导一个 Relic Web 服务器:创建项目、配置 RelicApp、启动服务并启用热重载。适用于创建新的 Relic 项目、搭建服务器或进行应用初始化时。
环境要求
Relic 是一个 Dart Web 服务器框架,要求 Dart SDK 3.7 及以上版本。使用单个导入即可:package:relic/relic.dart。
安装
dart create -t console-full my_server
cd my_server
dart pub add relic
最小服务器示例
import 'package:relic/relic.dart';
Future main() async {
final app = RelicApp()
..get('/hello/:name', (Request req) {
final name = req.rawPathParameters[#name];
return Response.ok(
body: Body.fromString('Hello, $name!'),
);
})
..use('/', logRequests())
..fallback = respondWith(
(_) => Response.notFound(
body: Body.fromString('Not found'),
),
);
await app.serve();
}
服务选项
await app.serve(); // 默认 0.0.0.0:8080
await app.serve(
address: InternetAddress.loopbackIPv4,
port: 3000,
);
回退处理器
回退处理器处理不匹配任何路由的请求。默认返回带空主体的 404。
app.fallback = respondWith(
(_) => Response.notFound(
body: Body.fromString('Page not found'),
),
);
热重载
Relic 支持在不重启服务器的情况下热重载路由处理器。
IDE:在 Debug 模式下启动服务器。在 Dart 插件设置中启用 “Hot Reload On Save”(通常设置为 manual)。
CLI:
dart run --enable-vm-service bin/main.dart
当触发热重载时,RelicApp 会自动用最新的路由定义重新配置其内部路由器。对服务器状态或全局变量的更改可能仍需要完全重启。
适用场景与限制
适用于使用 Dart 构建 Web 服务器的初始化阶段,包括路由定义、监听地址配置和回退处理。限制方面:Relic 需要 Dart SDK 3.7 及以上版本;热重载主要作用于路由处理器,对服务器状态或全局变量的更改可能仍需完全重启。