在Actix-Web中间件中返回响应

问题描述

在设法访问视图之前,我设法使一些代码运行,这可以正常工作,因为我可以看到控制台的打印输出。但是,我一直在努力返回响应,而不是直击观点。但是,由于生命周期或未实现工厂特征,我只会不断出错。

下面的代码运行:

#[actix_rt::main]
async fn main() -> std::io::Result<()> {
    HttpServer::new(|| {
        let app = App::new()
            .wrap_fn(|req,srv| {
                // srv => routing
                // req => service request
                if *&req.path().contains("/item/") {
                    match views::token::process_token(&req) {
                        Ok(_token) => println!("the token is passable"),Err(message) => println!("token error: {}",message)
                    }
                }
                let fut = srv.call(req);
                async {
                    let result = fut.await?;
                    Ok(result)
                }
            }).configure(views::views_factory);
        return app
    })
        .bind("127.0.0.1:8000")?
        .run()
        .await
}

如果令牌错误,我该如何返回响应或重定向到特定视图,或更改请求路径?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)