generated from alecodes/base-template
feat: add error handling
This commit is contained in:
parent
6bf3947df3
commit
8d8388e81a
5 changed files with 77 additions and 9 deletions
22
src/main.rs
22
src/main.rs
|
|
@ -1,3 +1,6 @@
|
|||
#![allow(unused)]
|
||||
#![allow(dead_code)]
|
||||
|
||||
use std::sync::Arc;
|
||||
|
||||
use axum::extract::State;
|
||||
|
|
@ -5,6 +8,7 @@ use axum::http::StatusCode;
|
|||
use axum::response::Html;
|
||||
use axum::routing::get;
|
||||
use axum::Router;
|
||||
use compendium::{Result, ResultTemplate};
|
||||
use minijinja::{context, Environment};
|
||||
|
||||
struct AppState {
|
||||
|
|
@ -12,11 +16,9 @@ struct AppState {
|
|||
}
|
||||
|
||||
#[tokio::main]
|
||||
async fn main() {
|
||||
async fn main() -> Result<()> {
|
||||
let mut tmpl_env = Environment::new();
|
||||
tmpl_env
|
||||
.add_template("base", include_str!("../templates/base.html"))
|
||||
.unwrap();
|
||||
tmpl_env.add_template("base", include_str!("../templates/base.html"))?;
|
||||
|
||||
let app_state = Arc::new(AppState { tmpl_env });
|
||||
|
||||
|
|
@ -28,14 +30,16 @@ async fn main() {
|
|||
#[cfg(debug_assertions)]
|
||||
let app = app.layer(tower_livereload::LiveReloadLayer::new());
|
||||
|
||||
let listener = tokio::net::TcpListener::bind("0.0.0.0:3000").await.unwrap();
|
||||
axum::serve(listener, app).await.unwrap();
|
||||
let listener = tokio::net::TcpListener::bind("0.0.0.0:3000").await?;
|
||||
axum::serve(listener, app).await?;
|
||||
|
||||
Ok(())
|
||||
}
|
||||
|
||||
async fn handler_home(State(state): State<Arc<AppState>>) -> Result<Html<String>, StatusCode> {
|
||||
let template = state.tmpl_env.get_template("base").unwrap();
|
||||
async fn handler_home(State(state): State<Arc<AppState>>) -> ResultTemplate {
|
||||
let template = state.tmpl_env.get_template("base")?;
|
||||
|
||||
let content = template.render(context!()).unwrap();
|
||||
let content = template.render(context!())?;
|
||||
|
||||
Ok(Html(content))
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue