如何使全局json配置并在任何地方使用它?
func indexHandler(w http.ResponseWriter, r *http.Request) {
// Use config
fmt.Println(config["Keywords"]) // <-- USE HERE
}
func main() {
config := models.Conf() // Init there!
fmt.Println(config.Keywords) // This prints "keywords1" - good
// Routes
http.HandleFunc("/", indexHandler)
// Get port
http.ListenAndServe(":3000", nil)
}
答案 0 :(得分:2)
问题很简单,在main中你创建一个新的配置实例而不是使用全局变量
你有:
var config map[string]*models.Config
哪个是全局变量。在main()中你有:
func main() {
config := models.Conf()
...
创建一个局部变量并抛弃它。这是你需要做的:
全局变量:
var config models.Config
主要:
func main() {
config = models.Conf()
...
这将引用全局变量而不是本地变量。