将GOLANG的开发和生产环境分开

i86rm4rw  于 2022-12-07  发布在  Go
关注(0)|答案(3)|浏览(530)

我是GO编程的新手。我来自nodejs。在nodejs中很容易分离dev和prod模式。通过简单地使用这段代码。

if(process.env.NODE_ENV==="production"){
   server.listen(prod.port);
} 
else{
   server.listen(dev.port);
}

我基本上也希望在GO中使用这个约定。那么我如何将我的开发代码和生产代码分开呢?
想要此功能的原因是
分隔服务器在开发和生产环境中侦听的端口
如果有什么技术可以分离端口,那也是可行的.
附言:我使用VScode作为我的代码编辑器。go-iris作为go服务器框架

aydmsdu9

aydmsdu91#

在Go语言中有多种方法可以实现这一点,但所有这些方法都不能在代码中处理这一点。
1.使用环境变量,例如os.Getenv
1.解析配置文件,例如某些.yaml文件
1.使用标志,例如package flag
我认为最常见的解决方案是使用标志,但所有标志都做同样的工作。通常在main方法中解析标志。

yhived7q

yhived7q2#

您可以使用os.Getenv函数。

package main

import (
    "fmt"
    "os"
)

func getEnv() string{
    return os.Getenv("APP_ENV")
}

https://golang.org/src/os/env.go?s=2471:2501#L73

l0oc07j2

l0oc07j23#

只需使用参数(如go run main.go -mode development)运行应用程序,而默认模式为生产模式。您可以使用脚本启动应用程序,以便分隔不同的环境。例如,您的bootstrap.bat文件可能如下所示:go run main.go -mode development .

相关问题