首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >用Viper将新密钥写入配置文件

用Viper将新密钥写入配置文件
EN

Stack Overflow用户
提问于 2021-04-01 08:10:49
回答 2查看 2.6K关注 0票数 0

第一个简单的项目与去这里。

基于用户输入,我需要向我现有的配置文件中添加新的键。我成功地用Viper正确地阅读了它,并在整个应用程序中使用它,但是WriteConfig似乎不起作用。

这里有一个片段:

代码语言:javascript
运行
复制
        oldConfig := viper.AllSettings()
        fmt.Printf("All settings #1 %+v\n\n", oldConfig)

        viper.Set("setting1", chosenSetting1)
        viper.Set("setting2", chosenSetting2)

        newConfig := viper.AllSettings()
        fmt.Printf("All settings #2 %+v\n\n", newConfig)

        err := viper.WriteConfig()
        if err != nil {
            log.Fatalln(err)
        }

newConfig按预期包括新设置,但WriteConfig不对配置文件进行更改。

我在Viper中读到过,在处理现有或不存在的文件方面,编写函数是很有争议的,而且有点错误,但我希望它们能在这样简单的情况下工作。

我还尝试了其他功能(即SafeWriteConfig),但没有成功。

我用的是Go 1.16.2和Viper 1.7.1。

我做错了什么?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2021-04-02 05:39:24

尝试WriteConfigAs(filename);您将能够命名要写入的文件。

如果WriteConfig中没有错误,那么很可能这些更改没有写到您期望的文件中。

viper.ConfigFileUsed()应该返回默认使用的路径。

票数 1
EN

Stack Overflow用户

发布于 2021-04-01 11:58:28

代码语言:javascript
运行
复制
viper.WriteConfig() // writes current config to predefined path set by 'viper.AddConfigPath()' and 'viper.SetConfigName'

您首先需要指定配置文件的路径。

或者试试下面的方法

代码语言:javascript
运行
复制
viper.SafeWriteConfigAs("/path/to/my/.config") // will error since it has already been written
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66900726

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档