【一起学Rust 框架篇 Viz框架】轻量级 Web 框架——Viz_rust web框架

async fn index(_: Request) -> Result<&'static str> {
Ok(“Hello Viz”)
}

#[tokio::main]
async fn main() -> Result<()> {
let addr = SocketAddr::from(([127, 0, 0, 1], 3000));
println!(“listening on {}”, addr);

let app = Router::new().get("/", index);

if let Err(err) = Server::bind(&addr)
    .serve(ServiceMaker::from(app))
    .await
{
    println!("{}", err);
}

Ok(())

}

### 4. 运行结果


如果你以上步骤没有出错,那么在终端中运行

cargo run

效果如下图  
 ![](https://img-blog.csdnimg.cn/7fd97a8883b743089052da4c93e123a1.png)最后一行的意思是正在监听本地的127.0.0.1的3000端口,说明程序没有出错


此时在浏览器打开网址

http://localhost:3000/

> 
> #### 注意
> 
> 
> localhost指向127.0.0.1
> 
> 
> 


此时页面应该是这个样子的  
 ![](https://img-blog.csdnimg.cn/9571f5fb738b46649423f764d346aca1.png)


## 二、Hello Viz代码详解


![](https://img-blog.csdnimg.cn/1ae3d0ff09aa4ed6848c14b7fd251304.png)  
 从整体上来看,这块代码主要分为3个部分,分别是导入组件,处理index请求和主程序


### 导入组件


首先导入了SocketAddr,用来表示socket地址,然后导入了Viz的一些组件


* Request 请求
* Result 响应
* Router 路由
* Server 服务器
* ServiceMaker 服务


![](https://img-blog.csdnimg.cn/1fd7a130760d4eeaa8c69e716dad0fdd.png)


### 处理请求


![](https://img-blog.csdnimg.cn/bc0e7ce6b7804c459f014d07e2c71f2c.png)这里使用异步函数来实现index的处理,传入Request,这个过程系统会自动为我们处理。然后响应的是字符串类型,在函数体中返回了字符串“Hello Viz”


### 主函数


![](https://img-blog.csdnimg.cn/641ccb525a384262a958232a50c21f8f.png)在Viz中,主函数也是异步函数,使用addr表示本地地址和监听的端口,然后挂载Router,使与index处理器相联系,再开启服务器。


## 三、常见用法


### 简单的处理程序

async fn index(_: Request) -> Result {
Ok(Response::text(“Hello, World!”))
}

async fn about(_: Request) -> Result<&'static str> {
Ok(“About Me!”)
}

async fn not_found(_: Request) -> Result {
Ok(“Not Found!”)
}

### 实现处理程序特质

#[derive(Clone)]
struct MyHandler {
code: Arc,
}

#[async_trait]
impl Handler for MyHan

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值