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 数据库接口
每月 127 次下载
8KB
74 代码行
butane_rocket_pool
Butane框架的数据库适配器
使用方法
- 在
Rocket.toml
中配置您的数据库。需要url
和backend_name
参数。
[default.databases.test]
backend_name = "sqlite" #Butane's backend name
url = "test.db"
- 在您的应用程序代码中添加和初始化数据库
#[database("test")]
struct DbConn(butane_rocket_pool::Connection);
#[launch]
fn rocket() -> _ {
rocket::build().mount("/", routes![create])
.attach(DbConn::fairing())
}
- 要使用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