我正在使用 actix-web 创建一个嵌入了状态/数据的 httpserver。但是 vscode 告诉我 create_app 函数在其返回值类型定义“App< AppState >”中有错误的参数:
发布结构应用
类型参数数量错误:预期 2,找到 1
预期 2 类型参数rustc(E0107)
应用程序.rs:
use crate::api;
use crate::model::DbExecutor;
use actix::prelude::Addr;
use actix_web::{error, http::Method, middleware::Logger, web, App, HttpResponse};
pub struct AppState {
pub db: Addr<DbExecutor>,
}
pub fn create_app(db: Addr<DbExecutor>) -> App<AppState> {
App::new().data(AppState { db }).service(
web::resource("/notes/").route(web::get().to(api::notes))
);
}
main.rs:
fn main(){
HttpServer::new(move || app::create_app(addr.clone()))
.bind("127.0.0.1:3000").expect("Can not bind to '127.0.0.1:3000'").start();
}
由于“服务”方法的返回类型是“Self”,即 actix_web::App 类型,我尝试将返回类型修改为 App(不带泛型参数)但仍然出现错误,我该怎么办?