lib.rs代码与main.rs代码
在src目录新建lib.rs和main.rs文件(使用cargo new脚手架创建的项目不需要新建,默认有这2个文件)
目录结构如下:
project
|—src
|—params //封装参数结构体模块
|—req.rs //封装请求参数结构体
|—resp.rs //封装返回数据结构体
|—result_parse.rs //解析返回参数结构体
|—mod.rs //导出模块
|—common //公共模块
|—db.rs //构造数据库连接池
|—jwt.rs //处理token
|—mistake.rs //处理错误
|—util.rs //工具函数
|—mod.rs //导出模块
|—logic //业务逻辑模块
|—wechat.rs //处理业务
|—mod.rs //导出模块
|—login_handle.rs //登录处理函数
|—xxx_handle.rs //CRUD与上传文件处理函数示例
|—lib.rs //导出模块
|—main.rs //程序主入口
lib.rs代码:
pub mod common;
pub mod logic;
pub mod params;
pub mod login_handle;
pub mod xxx_handle;
main.rs代码:
use projectname::common::db::Prodb;
use projectname::common::mistake::{un_auth,un_find,on_error,bad_request,un_processable};
use projectname::login_handle::verify;
use projectname::notice_handle::{insert_notice,update_notice,list_notice};
use projectname::xxx_handle::{delete_liver, insert_liver,list_liver,list_liver_all,list_liver_all_asc,list_liver_asc, upload_file};
use rocket_db_pools::Database;
#[macro_use] extern crate rocket;
#[launch]
fn rocket() -> _ {
rocket::build()
//初始化数据库连接
.attach(Afpdb::init())
//捕获异常
.register("/", catchers![un_auth,un_find,on_error,bad_request,un_processable])
.mount("/login", routes![verify])
.mount("/notice", routes![insert_notice,update_notice,list_notice])
.mount("/liver", routes![insert_liver,delete_liver,list_liver,list_liver_all,list_liver_asc,list_liver_all_asc,upload_file])
}
最后说明
运行cargo run 命令即可运行查看效果,使用cargo build --release命令即可编译成二进制可执行文件,以Windows系统为例,编译后可在bin/release目录下找到projectname.exe文件,将此exe文件与Rocket.toml文件一起上传到服务器指定目录,然后双击运行exe文件,即可使用,生产环境中可以考虑使用Nginx反向代理此应用服务。