Deadpool-postgres 连接

问题描述 投票:0回答:1

我使用 axum + deadpool-postgres 连接到数据库。在所有示例中,我看到(例如在 deadpool-repo 中)人们使用 axum 的

.with_state()
Pool
。我创建了返回 Pool 的异步函数,因此它甚至无法编译。我发现只有一个解决方案 - 使用扩展来实现此目的。

有什么建议吗?

提前致谢。

UPD:有错误的代码示例

mismatched types expected unit type '()' found struct 'deadpool::managed::Pool<Manager>'

//main.rs
let (router, api) = OpenApiRouter::with_openapi(ApiDoc::openapi())
        .nest("/test", test_routes())
        .with_state(database_pool().await) //here is the error
        .split_for_parts();
...
//test.rs
pub fn test_routes() -> OpenApiRouter<()> {
    OpenApiRouter::new()
    .routes(routes!(test_post_1, test_post_2))
}
postgresql rust rust-axum
1个回答
0
投票

如果将

()
OpenApiRouter
的泛型转换为
test_routes()
,则
Pool<Manager>
会期望
with_state(...)
而不是
Pool<Manager>
()

// main.rs
let (router, api) = OpenApiRouter::with_openapi(ApiDoc::openapi())
        .nest("/test", test_routes())
        .with_state(database_pool().await)
        .split_for_parts();
	
© www.soinside.com 2019 - 2024. All rights reserved.