The Go Programming Language
› http://golang.org/
› Go Playground
Go Projects
› Revel Web Framework
IIInsomnia

简单易用的 Golang 辅助库,让 Golang 开发更简单

  •  
  •   IIInsomnia ·
    shenghui0779 · Feb 28, 2019 · 4255 views
    This topic created in 2788 days ago, the information mentioned may be changed or developed.

    yiigo

    GoDoc GitHub release MIT license

    简单易用的 Golang 辅助库,让 Golang 开发更简单

    特点

    获取

    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)/foo")
    
    yiigo.UseDB("foo").Get(&User{}, "SELECT * FROM `user` WHERE `id` = ?", 1)
    

    MongoDB

    // default mongodb
    yiigo.RegisterMongoDB("default", "mongodb://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://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")
    

    文档

    说明

    • 支持 Go1.11+
    • 配置文件相关语法参考 toml
    • 爬虫可能需要的两个库:
      1. 页面 DOM 处理:goquery
      2. GBK 转 UTF8:iconv

    Enjoy 😊

    3 replies  •  2019-03-01 12:11:13 +08:00
    Rehtt
        1
    Rehtt  
       Mar 1, 2019 via Android
    感谢分享
    Raphael96
        2
    Raphael96  
       Mar 1, 2019
    谢谢分享,star 收藏备用
    meteor957
        3
    meteor957  
       Mar 1, 2019
    支持下
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   2701 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 32ms · UTC 15:46 · PVG 23:46 · LAX 08:46 · JFK 11:46
    ♥ Do have faith in what you're doing.