123456789101112131415161718192021222324252627282930313233343536 |
- use std::io::ErrorKind;
-
- use tera::{Context, Tera};
- use tide::utils::After;
- use tide::{Body, Response, Result, StatusCode};
-
- #[async_std::main]
- async fn main() -> Result<()> {
- tide::log::start();
- let mut app = tide::new();
-
- app.with(After(|mut res: Response| async {
- if let Some(err) = res.downcast_error::<async_std::io::Error>() {
- if let ErrorKind::NotFound = err.kind() {
- res.set_status(StatusCode::NotFound);
- }
- }
-
- Ok(res)
- }));
-
- app.with(After(|mut res: Response| async {
- res.set_content_type(tide::http::mime::HTML);
- Ok(res)
- }));
-
- app.at("/admin").get(|_| async {
- let tera = Tera::new("templates/**/*.html")?;
- let html = tera.render("admin.html", &Context::new())?;
- Ok(Body::from_string(html))
- });
-
- app.listen("127.0.0.1:8080").await?;
-
- Ok(())
- }
|