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

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

相关推荐
寰天柚子6 小时前
裸金属服务器深度解析:适用场景、选型指南与运维实践
服务器·网络·github
长安第一美人6 小时前
C 语言可变参数(...)实战:从 logger_print 到通用日志函数
c语言·开发语言·嵌入式硬件·日志·工业应用开发
Larry_Yanan6 小时前
Qt多进程(一)进程间通信概括
开发语言·c++·qt·学习
克莱斯勒ya7 小时前
服务器硬件配置
运维·服务器
superman超哥7 小时前
仓颉语言中基本数据类型的深度剖析与工程实践
c语言·开发语言·python·算法·仓颉
不爱吃糖的程序媛7 小时前
Ascend C开发工具包(asc-devkit)技术解读
c语言·开发语言
bu_shuo7 小时前
MATLAB奔溃记录
开发语言·matlab
春日见7 小时前
在虚拟机上面无法正启动机械臂的控制launch文件
linux·运维·服务器·人工智能·驱动开发·ubuntu
你的冰西瓜7 小时前
C++标准模板库(STL)全面解析
开发语言·c++·stl
松涛和鸣7 小时前
Linux Makefile : From Basic Syntax to Multi-File Project Compilation
linux·运维·服务器·前端·windows·哈希算法