Go中对应Node.js process.env的替代方案:如何获取单程序传入环境变量
Go 获取进程专属环境变量的方法
Go 标准库内置os包即可实现和 Node.js 中process.env完全等价的环境变量读取能力,具体操作如下:
1. 代码实现示例
基础读取
直接调用os.Getenv方法传入环境变量名即可:
package main import "os" func main() { // 等价于 Node.js 中的 const HTTP_PORT = process.env.HTTP_PORT httpPort := os.Getenv("HTTP_PORT") }
进阶:判断环境变量是否存在
如果需要区分「环境变量未设置」和「环境变量值为空」的场景,可以使用os.LookupEnv方法:
httpPort, isSet := os.LookupEnv("HTTP_PORT") if !isSet { // 变量未设置时可以指定默认值或做异常处理 httpPort = "8080" }
2. 启动时传入环境变量的方式
和 Node.js 完全一致,在执行命令前拼接环境变量键值对即可,该变量仅对当前启动的进程生效:
# 运行源码的场景 $ HTTP_PORT=5000 go run main.go # 编译为二进制后执行的场景 $ HTTP_PORT=5000 ./your-binary-file
内容的提问来源于stack exchange,提问作者IMStories
相关产品推荐
相关产品推荐

