package config import ( "context" "flag" "fmt" "io/ioutil" utils "youtube_collection_server/Utils" service "youtube_collection_server/service" "github.com/sirupsen/logrus" "go.mongodb.org/mongo-driver/mongo" "go.mongodb.org/mongo-driver/mongo/options" "gopkg.in/yaml.v2" ) var configFile string var MyEnv EnvConfig var Logger *logrus.Logger var MyDB *mongo.Database func init() { flag.StringVar(&configFile, "cf", "config.yml", "配置文件名") } type User struct { Name string Age int City string } type Users struct { Collection *mongo.Collection UserInfo map[string](*User) } func InitConfig() { flag.Parse() //读取配置文件 data, _ := ioutil.ReadFile(configFile) err := yaml.Unmarshal(data, &MyEnv) if err != nil { fmt.Println("读取配置文件错误...") return } //初始化日志 Logger = utils.InitLogger(MyEnv.Log.LogEnv, MyEnv.Log.LogPath) Logger.Info("初始化Logger成功...") //初始化db dbUrl := fmt.Sprintf("mongodb://%s:%s@%s:%s", MyEnv.Mongo.Username, MyEnv.Mongo.Password, MyEnv.Mongo.Host, MyEnv.Mongo.Port) clientOptions := options.Client().ApplyURI(dbUrl) client, err := mongo.Connect(context.TODO(), clientOptions) if err != nil { Logger.Fatal(err) } // Check the connection err = client.Ping(context.TODO(), nil) if err != nil { Logger.Fatal(err) } Logger.Info("Connected to MongoDB!") MyDB = client.Database(MyEnv.Mongo.Database) initService() } func initService() { service.UserServiceInstance.InitService(MyDB.Collection("my_test")) }