V2EX = way to explore
V2EX 是一个关于分享和探索的地方
Sign Up Now
For Existing Member  Sign In
The Go Programming Language
http://golang.org/
Go Playground
Go Projects
Revel Web Framework
IIInsomnia

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

  •  
  •   IIInsomnia ·
    shenghui0779 · Feb 28, 2019 · 3877 views
    This topic created in 2618 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   ·   Solana   ·   1020 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 42ms · UTC 18:10 · PVG 02:10 · LAX 11:10 · JFK 14:10
    ♥ Do have faith in what you're doing.