簡體   English   中英

在GOLANG中分離開發和生產環境

[英]Separting the development and production environment in GOLANG

我是 GO 編程的新手。 我來自nodejs。 在 nodejs 中很容易分離 dev 和 prod 模式。 通過簡單地使用此代碼。

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

我基本上也希望在 GO 中使用此約定。 那么我怎么能分開我的開發和生產代碼。

想要這個功能的原因是

分離我的服務器在開發和生產環境中監聽的端口

如果有任何技術可以分離端口,它也可以。

PS:我使用 VScode 作為我的代碼編輯器。 go-iris作為 go 服務器框架

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

在Go中有多種方法可以實現這一點,但是它們都沒有在代碼本身中處理這個問題。

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

我認為最常見的解決方案是使用標志,但所有人都做同樣的工作。 通常你在main方法中解析你的標志。

只需使用 arguments 運行您的應用程序,例如go run main.go -mode development ,而默認模式是 production 。 您可以使用腳本啟動您的應用程序以分隔不同的環境。 例如,您的 bootstrap.bat 文件可能如下所示: go run main.go -mode development

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM