You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
47 lines
946 B
Go
47 lines
946 B
Go
//go:build server || (!server && !client)
|
|
|
|
package main
|
|
|
|
import (
|
|
"log"
|
|
"time"
|
|
|
|
"github.com/noahlann/nnet/pkg/nnet"
|
|
)
|
|
|
|
func main() {
|
|
cfg := &nnet.Config{
|
|
Addr: "tcp://:8085",
|
|
}
|
|
srv, err := nnet.NewServer(cfg)
|
|
if err != nil {
|
|
log.Fatal(err)
|
|
}
|
|
|
|
// Simple logging middleware
|
|
logger := func(next nnet.Handler) nnet.Handler {
|
|
return func(ctx nnet.Context) error {
|
|
start := time.Now()
|
|
err := next(ctx)
|
|
_ = ctx.Response().Write([]byte{}) // no-op to ensure response object used
|
|
_ = start
|
|
return err
|
|
}
|
|
}
|
|
|
|
// Group with middleware
|
|
g := srv.Router().Group()
|
|
g.Use(func(ctx nnet.Context) error { return nil }, logger(func(ctx nnet.Context) error { return nil }))
|
|
|
|
// Register route in group
|
|
g.RegisterString("/hello", func(ctx nnet.Context) error {
|
|
return ctx.Response().WriteString("hello with middleware")
|
|
})
|
|
|
|
log.Println("middleware server on :8085")
|
|
if err := srv.Start(); err != nil {
|
|
log.Fatal(err)
|
|
}
|
|
}
|
|
|