2 回答

TA貢獻(xiàn)1828條經(jīng)驗(yàn) 獲得超3個(gè)贊
在主目錄下創(chuàng)建另一個(gè)包,將其命名types
為任何您想要的名稱。就像下面這樣:
將您的structure對象移動(dòng)到types.go
package types
type Configuration struct {
ApiPort string
DBHost string
DBPort string
DBUser string
DBPassword string
DBName string
Info string
}
main.go現(xiàn)在您可以從您的和訪問它dbapi/test.go。
main.go:
package main
import "... .../code/types"
func handlerTest(w http.ResponseWriter, r *http.Request) {
log.Println("INFO: /test was requested...")
dbapi.Test(&AppConfig)
}
func main() {
http.HandleFunc("/test", handlerTest)
AppConfig = ReadConfig()
log.Fatal(http.ListenAndServe(AppConfig.ApiPort, nil))
}
var AppConfig = types.Configuration{}
func ReadConfig() types.Configuration {
err := gonfig.GetConf("./config.development.json", &AppConfig)
if err != nil {
fmt.Println("ERROR: Config konnte nicht geladen werden: ", err.Error())
}
return AppConfig
}
dbapi.go:
package dbapi
import "... .../code/types"
func Test (w http.ResponseWriter, Appconfig *types.Configuration) error {
fmt.Println("Test: " + Appconfig.DBUser)
}

TA貢獻(xiàn)1824條經(jīng)驗(yàn) 獲得超5個(gè)贊
AppConfig 位于您已在主包中聲明的配置結(jié)構(gòu)類型的測試函數(shù)上。由于 go 不支持循環(huán)依賴,因此您無法將 Configuration 結(jié)構(gòu)導(dǎo)入 dbapi 包中以在其中使用它。因此,我將從主包中移動(dòng) Configuration 結(jié)構(gòu)并在 dbapi 包中聲明它。
package dbapi
import (...)
type Configuration struct {
ApiPort string
DBHost string
DBPort string
DBUser string
DBPassword string
DBName string
Info string
}
func Test (w http.ResponseWriter, Appconfig *Configuration) error {
fmt.Println("Test: " + Appconfig.DBUser)
}
然后,您可以通過從 dbapi 包導(dǎo)入來使用 main 中的 Configuration 結(jié)構(gòu)。
var AppConfig = dbapi.Configuration{}
所以,你的主包看起來像這樣:
package main
import(
...
"github.com/wyrdnixx/go-server/src/go-server/dbapi"
)
func handlerTest(w http.ResponseWriter, r *http.Request) {
log.Println("INFO: /test was requested...")
dbapi.Test(&AppConfig)
}
func main() {
http.HandleFunc("/test", handlerTest)
AppConfig = ReadConfig()
log.Fatal(http.ListenAndServe(AppConfig.ApiPort, nil))
}
var AppConfig = dbapi.Configuration{}
func ReadConfig() dbapi.Configuration {
err := gonfig.GetConf("./config.development.json", &AppConfig)
if err != nil {
fmt.Println("ERROR: Config konnte nicht geladen werden: ", err.Error())
}
return dbapi.AppConfig
}
- 2 回答
- 0 關(guān)注
- 175 瀏覽
添加回答
舉報(bào)