youtube_collection
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 

68 lines
1.5 KiB

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"))
}