Files
agila_open_tool/tools/v/examples/veb_fullstack/main.v
T

43 lines
787 B
V

module main
import veb
import databases
import os
const port = 8082
pub struct Context {
veb.Context
}
struct App {
veb.StaticHandler
}
pub fn (app &App) before_request(mut ctx Context) {
println('[veb] before_request: ${ctx.req.method} ${ctx.req.url}')
}
fn main() {
mut db := databases.create_db_connection() or { panic(err) }
sql db {
create table User
create table Product
} or { panic('error on create table: ${err}') }
db.close() or { panic(err) }
mut app := &App{}
app.serve_static('/favicon.ico', 'assets/favicon.ico') or { panic(err) }
app.mount_static_folder_at(os.resource_abs_path('.'), '/') or { panic(err) }
veb.run[App, Context](mut app, port)
}
pub fn (mut app App) index(mut ctx Context) veb.Result {
title := 'veb app'
return $veb.html()
}