在fiber项目中须通过环境变量加载敏感配置,先创建规范的.env文件,再安装godotenv包,通过import _ "github.com/joho/godotenv/autoload"自动加载,并用os.getenv安全读取。

在Fiber项目中安全读取数据库地址、端口、密钥等敏感配置,必须通过环境变量加载而非硬编码到Go源文件里。
创建并填充.env文件
在项目根目录新建一个名为.env的纯文本文件,用等号连接键值对,每行一个变量:
DB_HOST=localhost
DB_PORT=5432
DB_NAME=myapp
JWT_SECRET=super-secret-key-2026
注意:文件名必须是.env,不能带空格或扩展名;变量名建议全大写加下划线;不要在等号前后加空格。
安装并初始化godotenv包
执行命令安装第三方库:
go get github.com/joho/godotenv
该库能自动读取并解析.env文件内容,注入到Go运行时的os.Environ()中。不装它,os.Getenv永远读不到.env里的值。
在main.go中加载环境变量
第一步:在package main下方、import语句块顶部添加:
import _ "github.com/joho/godotenv/autoload"
这行代码会触发godotenv自动查找并加载项目根目录下的.env文件——无需手动调用Load(),也不用担心加载时机。
第二步:在func main()开头立即调用加载确认(可选但推荐):
if err := godotenv.Load(); err != nil {
log.Fatal("无法加载 .env 文件:", err)
}
第三步:使用os.Getenv获取变量值:
dbHost := os.Getenv("DB_HOST")
jwtSecret := os.Getenv("JWT_SECRET")
【DB_HOST和JWT_SECRET必须与.env中定义的键名完全一致,包括大小写】
验证环境变量是否生效
方法一:在main函数里加一行调试输出:
fmt.Println("DB_HOST =", os.Getenv("DB_HOST"))
运行go run main.go,终端应打印出localhost而非空字符串。
方法二:临时修改.env中DB_HOST为test.local,重启服务,观察日志是否同步变化。
若始终为空,请检查.env是否位于go run执行路径的根目录,且文件编码为UTF-8无BOM。











