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

//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)
}
}