在revel.Controller中,如何在app.conf中设置端口

时间:2014-01-26 07:36:33

标签: http go revel

使用revel框架(golang),如何在app.conf中设置端口?

// in app.conf
http.port=9090

我必须在控制器中使用我的服务器端口号(例如OAuth编码),例如

requestToken, url, err := TWITTER.GetRequestTokenAndUrl(
    "http://127.0.0.1:9090/Application/Authenticate",
)

我不想通过硬编码来写端口号。 使用revel,有没有什么好方法可以在app.conf中设置端口号(或任何其他conf值)?

提前谢谢

2 个答案:

答案 0 :(得分:2)

这个文档可能会有用 - http://robfig.github.io/revel/docs/godoc/config.html

例如

// Load app.conf
var err error
Config, err = LoadConfig("app.conf")
if err != nil || Config == nil {
    log.Fatalln("Failed to load app.conf:", err)
}
HttpPort = Config.IntDefault("http.port", 9000)

可以使用另一种方法代替直接加载(参见 modules / db / app / db.go

import (
    "github.com/robfig/revel"
)

if option, found = revel.Config.String("option"); !found {
    revel.ERROR.Fatal("No option found.")
}

答案 1 :(得分:0)

更新了答案

在您的文件app/init.go中,您必须在自定义函数中检索配置值。

此自定义功能必须在func init() revel.OnAppStart(MyFunc)注册。

如果您尝试直接从init() func检索配置值,您将收到类似这样的错误:

panic: runtime error: invalid memory address or nil pointer dereference