Macaron Documentation
  • Welcome
  • Starter Guide
  • Core Concepts
  • Core Services
  • Custom Services
  • Middlewares
    • Routing
    • Templating
    • Gzip
    • Localization
    • Data Binding and Validation
    • Cache
    • Captcha
    • Session
    • Cross-Site Request Forgery
    • Embed Binary Data
    • Serving Multiple Sites
  • FAQs
  • 简体中文
    • 初学者指南
    • 核心概念
    • 核心服务
    • 自定义服务
    • 中间件和辅助模块
      • 路由模块
      • 模板引擎
      • Gzip 压缩
      • 应用本地化
      • 数据绑定与验证
      • 缓存管理(Cache)
      • 验证码服务
      • 会话管理(Session)
      • 跨域请求攻击(CSRF)
      • 嵌入二进制数据
      • 服务多个站点
    • 常见问题
Powered by GitBook
On this page
  • 如何集成到我已有的服务中?
  • 如何修改监听地址和端口?
  • 如何优雅地终止程序(Graceful Shutdown)?
  • 除了注入服务以外,如何在同一个请求内传递数据?
  • 为什么不直接使用 Martini 而要另外创建一个框架?
  • 为什么 Logo 是一条龙?
  • 有代码实时编译运行工具吗?

Was this helpful?

  1. 简体中文

常见问题

Previous服务多个站点

Last updated 5 years ago

Was this helpful?

如何集成到我已有的服务中?

每个 都实现了 接口,因此可以很容易地将它们以子集的形式集成到已有服务中。例如,您可以将 Macaron 应用集成到 GAE 中:

package hello

import (
    "net/http"

    "gopkg.in/macaron.v1"
)

func init() {
    m := macaron.Classic()
    m.Get("/", func() string {
        return "Hello world!"
    })
    http.Handle("/", m)
}

如何修改监听地址和端口?

m := macaron.Classic()
// ...
log.Fatal(http.ListenAndServe(":8080", m))

或者以下方式:

  • m.Run("0.0.0.0"),监听在 0.0.0.0:4000

  • m.Run(8080),监听在 0.0.0.0:8080

  • m.Run("0.0.0.0", 8080),监听在 0.0.0.0:8080

如何优雅地终止程序(Graceful Shutdown)?

package main

import (
    ...
    "net/http"

    "gopkg.in/macaron.v1"
    "gopkg.in/tylerb/graceful.v1"
)

func main() {
    m := macaron.Classic()

    ...

    mux := http.NewServeMux()
    mux.Handle("/", m)
    graceful.Run(":4000", 60*time.Second, mux)
}

除了注入服务以外,如何在同一个请求内传递数据?

为什么不直接使用 Martini 而要另外创建一个框架?

  • 集成常用组件和方法来减少反射次数。

  • 使用速度更快的多叉树路由替换原本的路由层。

  • 对 Martini 源码进行一次深度学习。

为什么 Logo 是一条龙?

不应该是一种甜品吗?

正所谓 马卡龙,此龙乃是名为 马卡 的龙,哈哈!

有代码实时编译运行工具吗?

Macaron 的 Run 函数会首先根据环境变量 PORT 和 HOST 来确定监听地址和端口。如果未找到相应设置,则会默认使用 。如果您想要更加灵活便利的方案,可以使用 函数来实现。

对象 中包含一个类型为 map[string]interface{} 的字段 Data 可供您在同个请求的不同处理器之间传递数据。

可以到 查看使用方法。

更好地驱动 项目。

可以作为 Macaron 及其它应用的实时编译运行工具。

localhost:4000
http.ListenAndServe
*macaron.Context
Gogs
Bra
http.Handler
Macaron 实例
这里