You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Hyper v1.0.1中Server模块无法导入的问题求助

解决Hyper v1.0.1中Server导入错误的问题

问题原因

Hyper 1.0版本对模块结构进行了重构,Server不再位于hyper::server子模块下,而是直接放在Hyper的根命名空间中,因此你之前的导入路径hyper::server::Server会触发"no Server in server"的错误。

解决方案

有两种可行的修复方式:

方式1:修正Hyper Server的导入路径

将原导入语句:

use hyper::server::Server;

替换为:

use hyper::Server;

修改后启动代码可保持不变:

Server::bind(&addr)
    .serve(app.into_make_service())
    .await
    .unwrap();

方式2:使用Axum自带的启动方法(推荐)

Axum作为基于Hyper的Web框架,提供了更简洁的服务启动API,无需直接导入Hyper的Server。你可以直接调用Router的绑定方法,或导入Axum封装的Server:

// 方式2.1:直接用Router的bind方法
app.bind(addr)
    .await
    .unwrap();

// 方式2.2:导入Axum的Server
use axum::Server;
Server::bind(&addr)
    .serve(app.into_make_service())
    .await
    .unwrap();

这种方式更贴合Axum的使用习惯,不需要额外依赖Hyper的底层API。

修改后的完整main.rs示例(方式2)

use axum::{
    extract::Form,
    response::{Html, Redirect},
    routing::{get, post},
    Router,
    Extension,
    Server, // 直接从axum导入Server
};
use serde::Deserialize;
use std::net::SocketAddr;
use tera::{Context, Tera};

#[derive(Deserialize)]
struct CreateDagForm {
    dag_name: String,
    schedule: String,
}

async fn show_base(Extension(tera): Extension<Tera>) -> Html<String> {
    let rendered = tera.render("base.html", &Context::new()).unwrap();
    Html(rendered)
}

async fn create_dag(Form(form): Form<CreateDagForm>) -> Redirect {
    println!("Received DAG: Name = {}, Schedule = {}", form.dag_name, form.schedule);
    Redirect::to("/")
}

#[tokio::main]
async fn main() {
    let tera = Tera::new("templates/**/*").expect("Failed to initialize Tera");

    let app = Router::new()
        .route("/", get(show_base))
        .route("/create_dag", post(create_dag))
        .layer(Extension(tera));

    let addr = SocketAddr::from(([127, 0, 0, 1], 3000));
    println!("Server running at http://{}", addr);

    Server::bind(&addr)
        .serve(app.into_make_service())
        .await
        .unwrap();
}

依赖配置验证

你的Hyper依赖配置已开启full特性,版本^1.0.1符合要求,无需修改:

hyper = { version = "^1.0.1", features = ["full"]}

内容的提问来源于stack exchange,提问作者Surya

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.14 20:03:11