V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
The Go Programming Language
http://golang.org/
Go Playground
Go Projects
Revel Web Framework
IIInsomnia
V2EX  ›  Go 编程语言

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

  •  
  •   IIInsomnia ·
    shenghui0779 · 2019-02-28 16:55:53 +08:00 · 3396 次点击
    这是一个创建于 2095 天前的主题,其中的信息可能已经有所发展或是发生改变。

    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 条回复    2019-03-01 12:11:13 +08:00
    Rehtt
        1
    Rehtt  
       2019-03-01 09:20:56 +08:00 via Android
    感谢分享
    Raphael96
        2
    Raphael96  
       2019-03-01 10:47:37 +08:00
    谢谢分享,star 收藏备用
    meteor957
        3
    meteor957  
       2019-03-01 12:11:13 +08:00
    支持下
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1045 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 22ms · UTC 23:20 · PVG 07:20 · LAX 15:20 · JFK 18:20
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.