how to create dinamic port in golang (echo framwork)

huangapple go评论109阅读模式
英文:

how to create dinamic port in golang (echo framwork)

问题

我在这里为你翻译代码部分:

  1. package config
  2. import (
  3. "fmt"
  4. logger "github.com/sirupsen/logrus"
  5. "gorm.io/driver/postgres"
  6. "gorm.io/gorm"
  7. )
  8. func DatabaseConnect() *gorm.DB {
  9. DBURL := fmt.Sprintf("host=%s port=%s user=%s dbname=%s sslmode=disable password=%s", pkg.GodotEnv("DB_HOST"), pkg.GodotEnv("DB_PORT"), pkg.GodotEnv("DB_USER"), pkg.GodotEnv("DB_NAME"), pkg.GodotEnv("DB_PASSWORD"))
  10. db, err := gorm.Open(postgres.Open(DBURL), &gorm.Config{})
  11. if err != nil {
  12. defer logger.Info("Database connection failed")
  13. logger.Fatal(err)
  14. return nil
  15. }
  16. return db
  17. }

和 main.go:

  1. func main() {
  2. e := echo.New()
  3. db := config.DatabaseConnect()
  4. middleware.WebSecurityConfig(e)
  5. routes.NewRoute(db, e)
  6. e.Logger.Fatal(e.Start(":8080"))
  7. }

你想要创建一个像下面示例中的动态路由:

  1. server.Initialize(os.Getenv("DB_DRIVER"), os.Getenv("DB_USER"), os.Getenv("DB_PASSWORD"), os.Getenv("DB_PORT"), os.Getenv("DB_HOST"), os.Getenv("DB_NAME"))
  2. server.Run(":" + os.Getenv("PORT"))

如何创建动态端口服务器?谢谢。

英文:

i have package config.go in this my code

  1. package config
  2. import (
  3. "fmt"
  4. logger "github.com/sirupsen/logrus"
  5. "gorm.io/driver/postgres"
  6. "gorm.io/gorm"
  7. )
  8. func DatabaseConnect() *gorm.DB {
  9. DBURL := fmt.Sprintf("host=%s port=%s user=%s dbname=%s sslmode=disable password=%s", pkg.GodotEnv("DB_HOST"), pkg.GodotEnv("DB_PORT"), pkg.GodotEnv("DB_USER"), pkg.GodotEnv("DB_NAME"), pkg.GodotEnv("DB_PASSWORD"))
  10. db, err := gorm.Open(postgres.Open(DBURL), &gorm.Config{})
  11. if err != nil {
  12. defer logger.Info("Database connection failed")
  13. logger.Fatal(err)
  14. return nil
  15. }
  16. return db
  17. }

and main.go

  1. func main() {
  2. e := echo.New()
  3. db := config.DatabaseConnect()
  4. middleware.WebSecurityConfig(e)
  5. routes.NewRoute(db, e)
  6. e.Logger.Fatal(e.Start(":8080"))
  7. }

I want to create a dynamic routing like the example below :

  1. server.Initialize(os.Getenv("DB_DRIVER"), os.Getenv("DB_USER"), os.Getenv("DB_PASSWORD"), os.Getenv("DB_PORT"), os.Getenv("DB_HOST"), os.Getenv("DB_NAME"))
  2. server.Run(":" + os.Getenv("PORT"))

how to create dinamic port server ? thanks

答案1

得分: 2

请看这个链接:https://github.com/joho/godotenv。

将应用程序的配置添加到项目根目录下的.env文件中:

  1. DB_DRIVER=mysql
  2. DB_USER=root
  3. ...

然后在你的Go应用程序中可以这样做:

  1. package main
  2. import (
  3. "log"
  4. "os"
  5. "github.com/joho/godotenv"
  6. )
  7. func main() {
  8. err := godotenv.Load()
  9. if err != nil {
  10. log.Fatal("加载.env文件时出错")
  11. }
  12. driver:= os.Getenv("DB_DRIVER")
  13. user:= os.Getenv("DB_USER")
  14. // todo
  15. }
英文:

Check this out: https://github.com/joho/godotenv.

Add your application configuration to your .env file in the root of your project:

  1. DB_DRIVER=mysql
  2. DB_USER=root
  3. ...

Then in your Go app you can do something like:

  1. package main
  2. import (
  3. "log"
  4. "os"
  5. "github.com/joho/godotenv"
  6. )
  7. func main() {
  8. err := godotenv.Load()
  9. if err != nil {
  10. log.Fatal("Error loading .env file")
  11. }
  12. driver:= os.Getenv("DB_DRIVER")
  13. user:= os.Getenv("DB_USER")
  14. // todo
  15. }

huangapple
  • 本文由 发表于 2023年1月2日 14:42:24
  • 转载请务必保留本文链接:https://go.coder-hub.com/74979594.html
匿名

发表评论

匿名网友

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

确定