1

使用 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 值)?

先感谢您

4

2 回答 2

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.")
}
于 2014-01-26T08:00:35.310 回答
0

更新的答案

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

此自定义功能必须func init()使用revel.OnAppStart(MyFunc).


如果您尝试直接从init()func 检索配置值,您将收到如下所示的错误:

panic: runtime error: invalid memory address or nil pointer dereference
于 2017-06-07T06:59:50.937 回答