You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

main.rs 890B

1234567891011121314151617181920212223242526272829303132333435363738
  1. use dotenv;
  2. use tide::utils::After;
  3. mod fs;
  4. mod middleware;
  5. mod post;
  6. mod routes;
  7. #[async_std::main]
  8. async fn main() -> std::io::Result<()> {
  9. dotenv::dotenv().ok();
  10. tide::log::start();
  11. let mut app = tide::new();
  12. app.with(After(middleware::errors));
  13. app.with(middleware::session());
  14. app.at("/").get(routes::index);
  15. app.at("/posts")
  16. .with(middleware::require_auth)
  17. .post(routes::create_post);
  18. app.at("/posts/:id")
  19. .get(routes::single_post)
  20. .post(routes::update_post)
  21. .delete(routes::delete_post);
  22. app.at("/posts/:id/edit")
  23. .with(middleware::require_auth)
  24. .get(routes::edit_post);
  25. app.at("/login").get(routes::login_page).post(routes::login);
  26. app.at("/logout")
  27. .with(middleware::require_auth)
  28. .post(routes::logout);
  29. app.listen("127.0.0.1:8080").await?;
  30. Ok(())
  31. }