app.go的问题
- 把app.go和config.go都放在config下面会出现执行顺序问题,报错app.go
- 我把app.go文件单独提取处理,fmt.Println(config.Get(“app.port”))获取不了端口号```go
app.go
// Package config 站点配置信息
package config
import “gohub/config”
func init() {
config.Add(“app”, func() map[string]interface{} {
return map[string]interface{}{
// 应用名称
"name": config.Env("APP_NAME", "Gohub"),
// 当前环境,用以区分多环境,一般为 local, stage, production, test
"env": config.Env("APP_ENV", "production"),
// 是否进入调试模式
"debug": config.Env("APP_DEBUG", false),
// 应用服务端口
"port": config.Env("APP_PORT", "3000"),
// 加密会话、JWT 加密
"key": config.Env("APP_KEY", "33446a9dcf9ea060a0a6532b166da32f304af0de"),
// 用以生成链接
"url": config.Env("APP_URL", "http://localhost:3000"),
// 设置时区,JWT 里会使用,日志记录里也会使用到
"timezone": config.Env("TIMEZONE", "Asia/Shanghai"),
}
})
}
main.go
package main
import (
“flag”
“fmt”
“github.com/gin-gonic/gin”
“gohub/bootstrap”
“gohub/config”
)
func init() {
// 加载 config 目录下的配置信息
config.Initialize()
}
func main() {
// 配置初始化,依赖命令行 –env 参数
var env string
flag.StringVar(&env, "env", "", "加载 .env 文件,如 --env=testing 加载的是 .env.testing 文件")
flag.Parse()
config.InitConfig(env)
// new 一个 Gin Engine 实例
router := gin.New()
// 初始化 DB
bootstrap.SetupDB()
// 初始化路由绑定
bootstrap.SetupRoute(router)
fmt.Println(config.Get("app.port"))
// 运行服务
err := router.Run(":" + config.Get("app.port"))
if err != nil {
// 错误处理,端口被占用了或者其他错误
fmt.Println(err.Error())
}
}
推荐文章: