#rocket-framework #rocket #butane

butane_rocket_pool

Butane框架的数据库适配器

4个版本

0.5.3 2024年3月31日
0.5.2 2023年5月6日
0.5.1 2023年5月6日
0.5.0 2021年8月2日

#552 in 数据库接口

Download history 1/week @ 2024-04-09

每月 127 次下载

MIT 许可证

8KB
74 代码行

butane_rocket_pool

Butane框架的数据库适配器

使用方法

  1. Rocket.toml 中配置您的数据库。需要 urlbackend_name 参数。
[default.databases.test]
backend_name = "sqlite" #Butane's backend name
url = "test.db"
  1. 在您的应用程序代码中添加和初始化数据库
#[database("test")]
struct DbConn(butane_rocket_pool::Connection); 

#[launch]
fn rocket() -> _ {
    rocket::build().mount("/", routes![create])
    .attach(DbConn::fairing())
}
  1. 要使用Butane函数进行连接,请应用两个解引用运算符。
#[post("/", data = "<post>")]
async fn create(db: DbConn, post: Json<Post>) -> (Status, Value) {
    let result = db.run(move |db| -> Result<Post, butane::Error> {
        let mut result = post.0;
        result.save(&**db)?;
        Post::get(&**db, result.id)
    }).await;

    match result {
        Ok(res) => (Status::Created, json!({
            "message" : "Post is created!",
            "data" : res
        })),
        Err(err) => (Status::InternalServerError, json!({
            "message" : "Can't create post!",
            "error" : format!("{}", err)
        }))
    }
}

依赖项

18–50MB ~
~844K SLoC