基于golang的koa: 一个基于中间件的web框架goa
## 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