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