为推广 Rust 和 PostgreSQL 开源的完整前后端流量主小程序。
- 🚀 基于 Actix-Web 高性能 Web 框架
- 🗄️ PostgreSQL 数据库集成
- 🔒 环境变量配置管理
- 📦 使用 Sqlx 进行数据库操作
- 后端框架: Actix-Web 4.x
- 数据库: PostgreSQL
- 配置管理: config
- 序列化: Serde
- 异步运行时: Tokio
- Rust 1.80+
- PostgreSQL 14+
- Cargo
- 克隆项目:
git clone https://github.com/ikeeplearn/ads-minapp
cd ads-minapp- 设置环境变量:
编辑 config.yaml 文件,配置数据库连接等信息。
- 安装依赖:
cargo build- 创建数据库:
CREATE DATABASE wdxz;- 运行数据库迁移:
# 运行迁移
cargo run --config config.yaml migrate开发模式:
cargo run生产模式:
cargo run --release├── cli.rs # 命令行接口处理,解析命令行参数和配置
├── config.rs # 应用程序配置管理,环境变量和设置加载
├── constants.rs # 全局常量定义,如错误消息、默认值等
├── db.rs # 数据库连接池管理和 PostgreSQL 操作
├── error.rs # 自定义错误类型和错误处理实现
├── lib.rs # 库根模块,定义公共 API 和模块导出
├── main.rs # 应用程序主入口点,服务器启动逻辑
├── middleware.rs # Actix-Web 用户认证中间件
├── models.rs # 数据库模型定义,对应 PostgreSQL 表结构
├── routes # HTTP 路由处理模块
│ ├── file.rs # 文件上传下载相关路由处理
│ ├── mod.rs # 路由模块聚合和路由配置
│ ├── resource.rs # 资源管理 CRUD 操作路由
│ └── user.rs # 用户认证和管理相关路由
├── server.rs # HTTP 服务器配置和启动逻辑
├── structs.rs # 应用程序数据结构,DTO 和业务对象
└── utils # 工具函数和辅助模块
├── date_time # 日期时间处理工具
│ └── mod.rs # 时间格式化、时区转换等功能
├── mod.rs # 工具模块聚合和导出
└── serde_utils # Serde 序列化/反序列化工具
├── format_date_time.rs # 日期时间字段自定义序列化
├── format_date.rs # 日期字段自定义序列化
└── mod.rs # 序列化工具模块导出
通过 config.yaml 配置项目:
app:
port: 8000 # 服务运行端口
jwt_token: "AKIDuhLsAKIDuhLs" # JWT Token 加密随机字符串
database_url: "postgresql://postgres:postgrespassword@localhost:5432/wdxz" # PostgreSQL 连接地址
upload_path: "/tmp/files" # 文件上传保存目录
minapp:
secret_id: "AKIDuhLs" # 小程序开发 SecretId
secret_key: "dGnCj8" # 小程序开发 SecretKey
cargo fmtcargo clippycargo build --release本项目采用 MIT 许可证 - 查看 LICENSE 文件了解详情。
如果您遇到问题,请:
- 查看现有 issues
- 创建新的 issue 并详细描述问题
公众号

