Yiigo超好用的go開發輔助庫
一直想寫一些關於golang的學習文集,由於最近在整理mongodb的所以沒來得及寫,昨天突然發現一個超級好用的Golang 輔助庫,裡面將常用功能進行了封裝,讓golang開發變得超級簡單,讓新手不再害怕接觸golang這門新的程式語言。發現這麼好用的庫當然要第一時間和大家分享了。
特點
- 支援多MySQL 連線
- 支援多PostgreSQL 連線
- 支援多mongo 連線
- 支援多redis 連線
- 支援gomail 郵件傳送
- 支援toml 檔案配置
- 採用sqlx 處理SQL查詢
- 採用zap 日誌記錄
獲取
go get github.com/iiinsomnia/yiigo
使用
MySQL
// default db yiigo.RegisterDB("default", yiigo.MySQL, "root:root@tcp(localhost:3306)/test") yiigo.DB.Get(&User{}, "SELECT * FROM `user` WHERE `id` = ?", 1) // other db yiigo.RegisterDB("foo", yiigo.MySQL, "root:root@tcp(localhost:3306)/test") yiigo.UseDB("foo").Get(&User{}, "SELECT * FROM `user` WHERE `id` = ?", 1)
MongoDB
// default mongodb yiigo.RegisterMongoDB("default", "mongodb://username:password@localhost:27017") ctx, _ := context.WithTimeout(context.Background(), 5*time.Second) yiigo.Mongo.Database("test").Collection("numbers").InsertOne(ctx, bson.M{"name": "pi", "value": 3.14159}) // other mongodb yiigo.RegisterMongoDB("foo", "mongodb://username:password@localhost:27017") ctx, _ := context.WithTimeout(context.Background(), 5*time.Second) yiigo.UseMongo("foo").Database("test").Collection("numbers").InsertOne(ctx, bson.M{"name": "pi", "value": 3.14159})
Redis
// default redis yiigo.RegisterRedis("default", "localhost:6379") conn, err := yiigo.Redis.Get() if err != nil { log.Fatal(err) } defer yiigo.Redis.Put(conn) conn.Do("SET", "test_key", "hello world") // other redis yiigo.RegisterRedis("foo", "localhost:6379") foo := yiigo.UseRedis("foo") conn, err := foo.Get() if err != nil { log.Fatal(err) } defer foo.Put(conn) conn.Do("SET", "test_key", "hello world")
Config
// env.toml // // [app] // env = "dev" // debug = true // port = 50001 yiigo.UseEnv("env.toml") yiigo.Env.GetBool("app.debug", true) yiigo.Env.GetInt("app.port", 12345) yiigo.Env.GetString("app.env", "dev")
Logger
// default logger yiigo.RegisterLogger("default", "app.log") yiigo.Logger.Info("hello world") // other logger yiigo.RegisterLogger("foo", "foo.log") yiigo.UseLogger("foo").Info("hello world")