Dart Shelf框架安装与使用指南

Dart Shelf框架安装与使用指南

shelfWeb server middleware for Dart项目地址:https://gitcode.com/gh_mirrors/sh/shelf

目录结构及介绍

当您克隆Dart的Shelf项目仓库到本地后,其基本的目录结构如下:

.
├── CHANGELOG.md        # 修改历史记录
├── CONTRIBUTING.md     # 贡献者指导手册
├── LICENSE             # 开源许可证
├── README.md           # 项目描述与快速入门
├── bin                 # 包含可执行脚本文件的目录
│   └── shelf.dart      # 主要运行脚本
├── lib                 # 包含库代码的主要目录
│   ├── _shelf_internal.dart       # 内部辅助函数和类
│   ├── handlers.dart   # 请求处理程序定义
│   ├── middleware.dart # 中间件逻辑
│   ├── router.dart     # 路由系统相关实现
│   ├── shelf.dart      # 主要模块接口
│   └── ...             # 更多相关功能代码
├── test                # 单元测试代码所在目录
│   ├── integration_test.dart # 集成测试脚本
│   └── unit_test.dart    # 单元测试脚本
└── .gitignore          # git忽略规则文件

bin目录

这个目录下包含了项目的可执行文件shelf.dart,这是启动服务器的基本命令入口。

lib目录

lib是整个Shelf库的核心部分,它包含了所有用于HTTP服务的库代码,其中包括但不限于请求处理、中间件管理以及路由机制等关键组件。

test目录

存放各种单元和集成测试代码,以确保库的功能正确性。

启动文件介绍

Shelf提供了一个简单的Web服务器来快速搭建HTTP应用,主要通过bin/shelf.dart文件进行初始化和启动操作。该文件包含了如何创建一个基础服务器实例并监听特定端口的例子,您可以在此基础上扩展自己的应用程序。

启动示例:

import 'package:shelf/shelf.dart';
import 'package:shelf/shelf_io.dart' as io;

void main() async {
  var handler = const Pipeline().addMiddleware(logRequests()).addHandler(_echoRequest);
  
  final server = await io.serve(handler, 'localhost', 8080);
  print('Server listening on port ${server.port}');
}

Response _echoRequest(Request request) {
  return Response.ok('Request for "${request.url}"');
}

通过上述代码片段,可以启动一个简单的回显请求服务器,在本地8080端口监听并响应所有传入的HTTP请求。

配置文件介绍

Shelf本身不强制要求使用外部配置文件,但你可以选择使用环境变量或构建自定义的配置系统来控制你的应用程序行为。例如,改变服务器监听地址和端口可以通过以下方式设置:

import 'dart:io';

final ip = InternetAddress.loopbackIPv4;
var handler = /* ... */;
final server = await io.serve(handler, ip.host, int.parse(ENV['PORT'] ?? '8080'));

这里我们检查了PORT环境变量的存在与否,默认情况下使用8080端口,但如果设置了此环境变量,则使用指定值作为端口号。 以上就是基于Dart Shel

shelfWeb server middleware for Dart项目地址:https://gitcode.com/gh_mirrors/sh/shelf

  • 4
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

秋孝盼

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值