从0到1制作一个go语言服务器 (一) 配置

配置

我们在做一个项目的时候肯定会有各种各样的配置 比如说port ip等等

在写代码的时候肯定不可能把这些配置写死 不然后面迁移机器的时候想改个数据还得改代码

所以说我们会有专门的配置文件和读取配置文件来进行这些操作

我们这个项目使用的是 goconfig

它的用法也十分的简单

我们首先要创建一个 config.ini 文件 里面的配置格式类似这么写

cpp 复制代码
[login_server]
host = 127.0.0.1
port = 8003

其中 [login_server] 是一个session 我们读取value的时候就是读取每个 session下的value 比如说后面还可能有 [web_server] 的ip和port等

配置读取

我们需要创建创建一个新的config.go文件来读取所有的配置文件

读取配置的代码都是固定的 可以在github上看看 也可以直接复制下面的代码去试验

cpp 复制代码
package config

import (
	"fmt"
	"os"

	"github.com/Unknwon/goconfig"
)

const strFilename = "/conf/conf.ini"

var File *goconfig.ConfigFile

func init() {
	var err error

	strCurrentDir, err := os.Getwd()
	if err != nil {
		panic(err)
	}

	// 获取命令行的第二个参数
	if len(os.Args) > 1 {
		strCurrentDir = os.Args[1]
	}

	strFilePath := strCurrentDir + strFilename

	File, err = goconfig.LoadConfigFile(strFilePath)
	if err != nil {
		panic(err)
	}


}

最终我们会有一个main文件

cpp 复制代码
package main

import (
	"STZB/config"
	"fmt"
)

func main() {
	host := config.File.MustValue("login_server", "host", "127.0.0.1")
	port := config.File.MustValue("login_server", "port", "8003")
	fmt.Println("host: ", host)
	fmt.Println("port: ", port)
}

能够读取出上面的数据就是成功了

相关推荐
知已难寻10 小时前
Docker 入门:容器技术与 Docker 基础
java·运维·服务器·docker·云原生·容器
沐晓时光11 小时前
C语言入门,内存函数知识讲解
c语言·开发语言
David猪大卫17 小时前
【C++修炼】map 和 set 的使用
c语言·开发语言·数据结构·c++·经验分享·笔记·学习
星恒随风17 小时前
MySQL 从零入门(三):表的约束详解
linux·服务器·数据库·笔记·mysql
fengci.18 小时前
CTF2MISC中等部分
开发语言·前端·学习
xys_67819 小时前
JavaEE通关手册:初识Java
java·开发语言
ShineWinsu20 小时前
对于Qt:QTableWidget常见属性以及QTableWidgetItem类的解析
开发语言·c++·qt·gui·客户端·表格·qtablewidget
ShineWinsu21 小时前
对于Qt:QListWidget常见属性以及QListWidgetItem类的解析
开发语言·c++·qt·客户端·列表·qlistwidget·qlistwidgetitem
坤坤子吖1 天前
Linux网络编程:自定义应用层协议与 JSON 序列化
linux·服务器·网络·c++·笔记·json
吴名氏.1 天前
Java转AI Agent教程(第十二周)检索与切分
java·开发语言·人工智能·ai·ai agent