go + koa = ? 一個新的 Web 框架 goa 誕生

NicholasCao發表於2019-08-08

koajs

koa -- 基於nodejs平臺的下一代web開發框架

goa

最近因工作需要從nodejs轉到go,因此開發了一個koa for golang的web框架--goa。
當golang 與 koa 結合會發生什麼呢?goa就是答案

github地址:goa

demo:

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

相關文章