/***weixinshare start****/ var urlStr = encodeURIComponent(window.location.href); var imgSrc = 'http://www.51testing.com/favicon.ico'; $.ajax({ url : "http://quan.51testing.com/goShare", type : "post", data : { url : urlStr }, success : function(response){ wx.config({ debug : false, appId : 'wxc2eb0783319e1462', timestamp : response.msg.res.timestamp, nonceStr : response.msg.res.nonceStr, signature : response.msg.res.signature, jsApiList : [ 'onMenuShareAppMessage','onMenuShareTimeline' ] }); wx.ready(function(){ wx.onMenuShareTimeline({ title: "项目学习之Golang 配置管理库 Viper-51Testing", link: window.location.href, imgUrl: imgSrc, success: function(){ } }); wx.onMenuShareAppMessage({ title: "项目学习之Golang 配置管理库 Viper-51Testing", desc: "  一、Viper 是什么?  Viper 是应用程序的完整配置的管理工具,用于在应用程序中工作,可以处理所有类型的配置需求和格式。  二、安装 Viper  go get github.com/spf13/viper  三、Viper 有什么作用  ·设置默认值  · 读取 JSON、TOML、YAML(YML)、HCL、envfile 和 Java properties 属性配置文件  · 实时查看和重读配置文件(可选)  · 从环境变量中读取  · 从远程配置系统(etcd 或 Consor)读取数据,并观察变化  · 从命令行标志读取  · 从缓冲区读取  · 设置显式值  四、Viper demo 可供参考  func main() {  ReadIni()  ReadYml()  }  func ReadIni() {  v := viper.New()      v.AddConfigPath("./conf")  // 路径(当前路径下的conf文件夹)  v.SetConfigName("configA") // 名称  v.SetConfigType("ini")     // 类型  err := v.ReadInConfig() // 读配置  if err != nil {  if _, ok := err.(viper.ConfigFileNotFoundError); ok {  fmt.Println("找不到配置文件..")  } else {  fmt.Println("配置文件出错..")  }  }  // [section] 如果没写就是 default,也就是下面的 key 变成 default.username  s1 := v.GetString("db.username")  s2 := v.GetInt("web.port")  fmt.Printf("ini 文件的数据库名字:%v, 网络端口号:%v \n", s1, s2)  }  func ReadYml() {  v := viper.New()  v.AddConfigPath("./conf")  v.SetConfigName("configB")  v.SetConfigType("yml")  err := v.ReadInConfig()  if err != nil {  if _, ok := err.(viper.ConfigFileNotFoundError); ok {  fmt.Println("找不到配置文件..")  } else {  fmt.Println("配置文件出错..")  }  }  s1 := v.GetString("db.username")  s2 := v.GetInt("web.port")  s3 := v.GetString("app.time")  fmt.Printf("yml 文件的数据库名字:%v, 网络端口号:%v, apptime:%v \n", s1, s2, s3)  }  结果:  ini 文件的数据库名字:admin, 网络端口号:8080  yml 文件的数据库名字:root, 网络端口号:8088, apptime:05/30  配置文件内容  ·configA.ini  ;数据库配置  [db]  username=admin  password=123  driver=mysql  port=3306  ;网络配置  [web]  port=8080  ·configB.yml  # 数据库配置  db:       username: root      password: 123      driver: mysql      port: 3306  # 网络配置  web:      port: 8088  # APP配置  app: {id: 10,time: 05/30}  注意  以上例子在根目录下面创建了 conf 文件夹,然后创建了 configA.ini 和 configB.yml 文件。  五、总结  使用 viper 能够很好的去管理你的配置文件信息,比如数据库的账号密码,服务器监听的端口,你可以通过更改配置文件去更改这些内容,而不用定位到那一段代码上去,提高了开发效率。  需要注意的是,你还需要补充配置文件的格式相关的知识,才能更好的去使用它。  本文内容不用于商业目的,如涉及知识产权问题,请权利人联系51Testing小编(021-64471599-8017),我们将立即处理", link: window.location.href, imgUrl: imgSrc, success: function(){ } }); }); }, error: function(err) { console.log(err); } }); /***weixinshare end****/ function doZoom(size){ document.getElementById('articlebody').style.fontSize=size+'px' }