Giter Site home page Giter Site logo

boom's Introduction

Boom-V1

Boom V1.0


框架简介

特征

好用

配置文件

config/config.go

Api接口

需先在Develop/develop.go下定义结构体并初始化,再新建go文件写接口,最后在route/route.go里注册路由

示例:

  • 在route/route.go里添加
RegisterController(Develop.NewController(r.Group("/user")))
  • 在Develop/develop.go下定义结构体并初始化,
type Controller struct {
group *duang.RouterGroup
}

func New(g *duang.RouterGroup) Controller {
return Controller{group: g}
}
  • 在Develop下新建go文件
func (cc Controller) List() {
cc.group.GET("/list", func (c *duang.Context) {
// 检测登陆
token := app.GetRequest(c).Header["Token"]
_, err := duang.GetUser(token)
if err != "" {
c.JSON(http.StatusUnauthorized, duang.H{
"code": 401,
"msg":  err,
})
return
}
c.JSON(200, duang.H{
"code": 200,
"data": result,
})
})
}

数据库

使用时先引用

import "boom/duang"

数据库采用gorm,官方文档:https://gorm.io/zh_CN/docs/

查询单条记录Pdo_get()

参数为 (表名,字段,条件) ,当查询字段为空时,默认查全部字段

  • 示例:
w := map[string]interface{}{
"id": 869934687064064,
"Limit": 2,
"Order": "id DESC",
}
columns := []string{
"name",
}
result := duang.Pdo_get("user", columns, w)

result := duang.Pdo_get("user", []string{"name"}, map[string]interface{}{"id": 1})

查询多条记录Pdo_getall()

当条件有Limit并为数组时,表示需要分页。返回值为 (数据,总页数,总条数)

  • 示例:
w := map[string]interface{}{
    "id": 869934687064064,
    "Limit": [2]int{1, 10},  // 第一页,每页10条
    "Order": "id DESC",
}
columns := []string{
    "name",
}
list, pageNum, total := duang.Pdo_getall("user", columns, w)

插入记录Pdo_insert()

参数为 (表名,数据) ,返回值为影响的记录数

  • 示例:
data := map[string]interface{}{
    "dept_id": 333
}
add := duang.Pdo_insertall("role_dept", data)

data := []map[string]interface{}{
    {"dept_id": 333},
    {"dept_id": 444},
}
add := duang.Pdo_insertall("role_dept", data)

更新记录Pdo_update()

参数为 (表名,数据,条件) ,返回值为受影响条数

  • 示例:
w := map[string]interface{}{
    "id": 869934687064064,
}
data := map[string]interface{}{
    "dept_id": 111,
}
up := duang.Pdo_update("role_dept", data, w)

删除记录Pdo_delete()

参数为 (表名,条件) ,返回值为受影响条数

  • 示例:
del := duang.Pdo_delete("role_dept", map[string]interface{}{"id": 8})

查询条数Pdo_count()

参数为 (表名,条件) ,返回值为条数

  • 示例:
cou := duang.Pdo_count("role_dept", map[string]interface{}{"id": 8})

Token

将id作为参数生成token,token有效时间默认为8小时

//生成token
token, _ := duang.EnToken("id")
//解token
a, _ := DeToken(token)
if a != nil {
    fmt.Println(a.ID)
}

自定义token参数:

在duang/duangTools.go中修改结构体

type MyCustomClaims struct {
	ID string
	jwt.RegisteredClaims
}

修改token有效时间:

修改EnToken方法中MyCustomClaims结构体的ExpiresAt

claims := MyCustomClaims{
    val,
    jwt.RegisteredClaims{
        ExpiresAt: jwt.NewNumericDate(time.Now().Add(8 * time.Hour)), //当前时间往后8小时
        Issuer: "test" //签名人
    },
}

WebSocket

目录duang/webSocket.go,连接websocket后会收到一个id

基本请求参数:

{
    "toId":"",              // 接收者的id
    "selfId":""              // 自己的id
}

Modbus

import "duang/modbus"

RTU

modbus.ModbusRtuMain(1, 3, 0, 4) // 01 03 00 00 00 04 xx xx

TCP

modbus.ModbusTcpMain(1, 6, 0, 3) // [00 01 00 00 00 06]01 06 00 00 00 03

其他

获取当前文件路径

_, filename, _, _ := runtime.Caller(0)
abPath := path.Dir(filename)
fmt.Println(abPath)

缓存

Data := "hello~~~"
ca := cache2go.Cache("myCache")
ca.Add("userDate", 5*time.Second, Data) // 存在5秒
value, err := ca.Value("userDate")
if err != nil {
	fmt.Println(err)
	return
}
fmt.Println(value)

boom's People

Contributors

zyriven avatar

Stargazers

cvOkii avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.