从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 分钟前
【开题答辩实录分享】以《基于Python的大学超市仓储信息管理系统的设计与实现》为例进行选题答辩实录分享
开发语言·python
树℡独30 分钟前
ns-3仿真之应用层(五)
服务器·网络·tcp/ip·ns3
froginwe1133 分钟前
Scala 循环
开发语言
m0_706653231 小时前
C++编译期数组操作
开发语言·c++·算法
故事和你911 小时前
sdut-Java面向对象-06 继承和多态、抽象类和接口(函数题:10-18题)
java·开发语言·算法·面向对象·基础语法·继承和多态·抽象类和接口
Bruk.Liu1 小时前
(LangChain实战2):LangChain消息(message)的使用
开发语言·langchain
qq_423233901 小时前
C++与Python混合编程实战
开发语言·c++·算法
m0_715575341 小时前
分布式任务调度系统
开发语言·c++·算法
a41324472 小时前
ubuntu 25 安装vllm
linux·服务器·ubuntu·vllm
Configure-Handler2 小时前
buildroot System configuration
java·服务器·数据库