无法在config golang节中存储数据

时间:2018-07-13 17:00:21

标签: go configuration

我只是尝试为我的第一个应用程序使用ini文件进行配置。

我有这样的配置文件

[server]
port         = 1020
environment  = "development"

和一些用于读取配置文件的代码。

package config

import (
    "log"

    "gopkg.in/gcfg.v1"
)

type ServerConfig struct {
    Port        int    `gcfg:"port"`
    Environment string `gcfg:"environment"`
}

var Server ServerConfig

func InitConfig() {
    err := InitConfigServer()
    if err != nil {
        log.Panicln("Error init config server : ", err)
        return
    }
}

func InitConfigServer() error {
    err := gcfg.ReadFileInto(&Server, "files/config/config-main.ini")
    return err
}

和我的main.go将调用InitConfig() 当我尝试运行main.go时,出现了错误

Error init config server :  warnings:
can't store data at section "server"
can't store data at section "server"

panic: Error init config server :  warnings:
can't store data at section "server"
can't store data at section "server"

有人可以解释该错误实际发生了什么吗?我无法清楚地了解此配置文件出了什么问题。

谢谢

1 个答案:

答案 0 :(得分:0)

根据文档:“该部分对应于config结构中的结构字段”。您应该读入带有字段Server的结构(以使用server部分)。该字段的类型可能为ServerConfig

type Config struct {
    Server ServerConfig `gcfg:"server"`
}

type ServerConfig struct {
    Port        int    `gcfg:"port"`
    Environment string `gcfg:"environment"`
}

var Config Config

func InitConfig() {
    err := InitConfigServer()
    if err != nil {
        log.Panicln("Error init config server : ", err)
        return
    }
}

func InitConfigServer() error {
    err := gcfg.ReadFileInto(&Config, "files/config/config-main.ini")
    return err
}