## koajs 相信绝大部分使用nodejs的开发者都知道[koa](https://koa.bootcss.com/),甚至每天都在跟koa打交道。 ## goa 最近因工作需要从nodejs转到go,因此开发了一个koa for golang的web框架--goa。 几乎一样的语法,一样基于中间件。 github地址:[goa](https://github.com/goa-go/goa) demo: ``` golang package main import ( "fmt" "time" "github.com/goa-go/goa" "github.com/goa-go/goa/router" ) func logger(c *goa.Context, next func()) { start := time.Now() fmt.Printf("[%s] <-- %s %s\n", start.Format("2006-6-2 15:04:05"), c.Method, c.URL) next() fmt.Printf("[%s] --> %s %s %d%s\n", time.Now().Format("2006-6-2 15:04:05"), c.Method, c.URL, time.Since(start).Nanoseconds()/1e6, "ms") } func json(c *goa.Context) { c.JSON(goa.M{ "string": "string", "int": 1, "json": goa.M{ "key": "value", }, }) } func main() { app := goa.New() router := router.New() router.GET("/", func(c *goa.Context) { c.String("hello world") }) router.GET("/json", json) app.Use(logger) app.Use(router.Routes()) app.Listen(":3000") } ``` 如果觉得这个项目不错的话,请给个star给予作者鼓励, 另外欢迎fork和加入开发团队共建。 再次贴上地址https://github.com/goa-go/goa