func main() { stack := new(mango.Stack) stack.Address = ":3300" // Route all requests for /goodbye to the Goodbye handler routes := map[string]mango.App{"/goodbye(.*)": Goodbye} stack.Middleware(mango.Routing(routes)) stack.Middleware(mango.ShowErrors("ERROR!!")) //stack.Run(Hello) fmt.Println("type of stack: ", reflect.TypeOf(stack)) //fmt.Println("type of m: ", reflect.TypeOf(m)) fmt.Println("type of hello: ", reflect.TypeOf(Hello)) var x float64 = 3.4 v := reflect.ValueOf(x) fmt.Println("type:", v.Type()) fmt.Println("kind is float64:", v.Kind() == reflect.Float64) fmt.Println("value:", v.Float()) type T struct { A int B string } t := T{23, "skidoo"} s := reflect.ValueOf(&t).Elem() typeOfT := s.Type() for i := 0; i < s.NumField(); i++ { f := s.Field(i) fmt.Printf("%d: %s %s = %v\n", i, typeOfT.Field(i).Name, f.Type(), f.Interface()) } }
func StartServer() { routes := make(map[string]mango.App) routes["/hello"] = new(mango.Stack).Compile(hello) routes["/bye"] = new(mango.Stack).Compile(bye) testServer := new(mango.Stack) testServer.Middleware(mango.ShowErrors("<html><body>{Error|html}</body></html>"), mango.Routing(routes)) testServer.Address = "localhost:" + Configuration.Server_Port testServer.Run(routeNotFound) fmt.Printf("Running server on: %s\n", testServer.Address) }
func main() { stack := new(mango.Stack) stack.Address = ":3000" stack.Middleware(mango.ShowErrors("")) stack.Run(pact.Producer) }
func main() { // Load config with webconf on first available port appConfig := Config{} for p := 50000; ; p++ { c := webconf.New(&appConfig, "config.json", ":"+strconv.Itoa(p), nil) if c != nil { if err := c.Load(); err == nil { break // Config loaded } } } // Connect to DB db, err := sql.Open("postgres", appConfig.DbConnection) if err != nil { log.Fatal(err) } defer db.Close() // Intialize DB schema if necessary err = initDatabase(db) if err != nil { log.Fatal(err) } // Configure Mango stack := &mango.Stack{} stack.Address = appConfig.BindAddress cookieOptions := mango.CookieOptions{ strings.Split(appConfig.BindAddress, ":")[0], "/", 86400, // One day expiration true, true, } // Setup routes routes := make(map[string]mango.App) routes["/login"] = stack.Compile(login) routes["/edit/event"] = stack.Compile(editEvent) routes["/edit/event/([0-9]+)"] = stack.Compile(editEvent) routes["/edit/asset"] = stack.Compile(editAsset) routes["/edit/asset/([0-9]+)"] = stack.Compile(editAsset) routes["/asset/([0-9]+)"] = stack.Compile(displayAsset) routes["/user/([0-9]+)"] = stack.Compile(displayUser) routes["/asset"] = stack.Compile(listAssets) routes["/user"] = stack.Compile(listUsers) routes["/"] = stack.Compile(listAssets) stack.Middleware( mango.ShowErrors(""), mango.Sessions(appConfig.SessionSecret, "asset-tracker", &cookieOptions), AssetTracker(db, initTemplates()), mango.Static("static"), mango.Routing(routes), ) stack.Run(defaultHandler) for { } }