与高朗的开发和生产环境分开

时间:2018-08-10 06:05:38

标签: go go-iris

我是GO编程新手。我来自nodejs。在nodejs中将dev和prod模式分开很容易。只需使用此代码即可。

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

我基本上也希望该约定也可以在GO中使用。因此,我该如何区分开发代码和生产代码。

想要此功能的原因是

  

分隔服务器在dev和prod中监听的端口   环境

如果有任何分离端口的技术,也可以。

  

P.S:我正在使用VScode作为我的代码编辑器。而go-iris作为Go服务器   框架

2 个答案:

答案 0 :(得分:7)

您可以使用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

答案 1 :(得分:7)

您可以通过多种方式在Go中实现此目标,但是所有这些方式都不在代码本身中处理。

  1. 使用环境变量,例如os.Getenv
  2. 解析配置文件,例如一些.yaml文件
  3. 使用标志,例如package flag

我认为最常见的解决方案是使用标志,但是所有标志都可以完成相同的工作。通常,您可以在main方法中解析标志。