基于golang的koa: 一个基于中间件的web框架goa

Nicholas_3a05 · · 721 次点击 · · 开始浏览    
这是一个创建于 的文章,其中的信息可能已经有所发展或是发生改变。

koajs

相信绝大部分使用nodejs的开发者都知道koa,甚至每天都在跟koa打交道。

goa

最近因工作需要从nodejs转到go,因此开发了一个koa for golang的web框架--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


有疑问加站长微信联系(非本文作者)

本文来自:简书

感谢作者:Nicholas_3a05

查看原文:基于golang的koa: 一个基于中间件的web框架goa

入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:692541889

721 次点击  
加入收藏 微博
暂无回复
添加一条新回复 (您需要 登录 后才能回复 没有账号 ?)
  • 请尽量让自己的回复能够对别人有帮助
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`
  • 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
  • 图片支持拖拽、截图粘贴等方式上传