Skip to content

iKeepLearn/ads-minapp

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

流量主小程序

小程序

为推广 Rust 和 PostgreSQL 开源的完整前后端流量主小程序。

功能特性

  • 🚀 基于 Actix-Web 高性能 Web 框架
  • 🗄️ PostgreSQL 数据库集成
  • 🔒 环境变量配置管理
  • 📦 使用 Sqlx 进行数据库操作

技术栈

  • 后端框架: Actix-Web 4.x
  • 数据库: PostgreSQL
  • 配置管理: config
  • 序列化: Serde
  • 异步运行时: Tokio

开始使用

前置要求

  • Rust 1.80+
  • PostgreSQL 14+
  • Cargo

安装

  1. 克隆项目:
git clone https://github.com/ikeeplearn/ads-minapp
cd ads-minapp
  1. 设置环境变量:

编辑 config.yaml 文件,配置数据库连接等信息。

  1. 安装依赖:
cargo build

数据库设置

  1. 创建数据库:
CREATE DATABASE wdxz;
  1. 运行数据库迁移:
# 运行迁移
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 fmt

代码检查

cargo clippy

编译二进制文件

cargo build --release

许可证

本项目采用 MIT 许可证 - 查看 LICENSE 文件了解详情。

支持

如果您遇到问题,请:

  1. 查看现有 issues
  2. 创建新的 issue 并详细描述问题

联系方式

公众号

公众号

致谢

About

Rust + PostgreSQL 完整前后端流量主小程序

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors