1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
use std::fs;
use std::path::PathBuf;
use json::{JsonValue, object};
use df_web::web::Web;

fn main() {
    let mut root_path = PathBuf::from(env!("CARGO_MANIFEST_DIR"));
    root_path = root_path.join("..");
    let conf_web_path = root_path.join("config");
    let conf_web_path = conf_web_path.join("web.json");

    let conf_web_path = conf_web_path.to_str().unwrap();
    let conf = match fs::read_to_string(conf_web_path) {
        Ok(content) => {
            if content == "" {
                object! {}
            } else {
                json::parse(content.as_str()).unwrap()
            }
        }
        Err(_) => {
            object! {}
        }
    };


    let public_path = root_path.join("df-web");
    let public_path = public_path.join("examples");
    let public_path = public_path.join("public");
    let public_path = public_path.to_str().unwrap();
    println!("http服务器启动 访问地址: {}", conf["url"].clone());
    println!("公共目录: {}", public_path.clone());
    Web::bind(conf["url"].as_str().unwrap(), public_path, conf["cors"].clone()).run(handle);

    fn handle(response: JsonValue) -> (JsonValue, i32, String) {
        println!("{:#}", response);
        let text = object! {"name":"2313",response:response};
        return (text, 200, "json".to_string());
    }
}