从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)
}

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

相关推荐
九零HTTP17 分钟前
10月21号-CSDN配菜-IP池的5个坑
服务器·数据库·tcp/ip
fanruitian19 分钟前
python else用法
开发语言·python
SHENGWEI胜为24 分钟前
交换机端口显示正常,终端却获取不到 IP 地址?从 DHCP 流程定位故障
服务器·网络·测试工具·缓存·通信工程
极光通讯27 分钟前
液冷服务器对内存和SSD的适配要求:高密度部署下的散热与信号完整性
运维·服务器
FRing0328 分钟前
JavaScript入门到精通二十六(变量提升、函数剩余参数、展开运算符、ES6箭头函数)
开发语言·前端·javascript·es6·箭头函数
云深麋鹿31 分钟前
C++ | 基于红黑树实现mymap与myset
开发语言·c++
weixin_417396831 小时前
桌面云终端PXE启动失败怎么排查?从DHCP Option到镜像下发
开发语言·前端·php·技术·酒店·综合布线·弱电
某不知名網友2 小时前
ROS2进阶:服务通信、自定义SRV接口、参数服务器与基于服务的参数通信详解
java·开发语言·microsoft
java_nnnn2 小时前
LeetCode刷题滑动窗口(水果成篮+找到字符串中所有字母的异位词)Java
java·开发语言·leetcode
IMPYLH2 小时前
Linux 系统备份与镜像
linux·服务器·网络