go语言前端联系

实现用户注册

go mod init main	//生成go.mod

go get -u github.com/gin-gonic/gin//生成go.sum
简单示例
func main(){
	r := gin.Default()
	r.GET("/ping", func(c *gin.Context) {
		c.JSON(200, gin.H{
			"message": "pong",
		})
	})	//修改其为用户注册	
	panic(r.Run())
}
go run main.go

在这里插入图片描述

未连接数据库的演示版本


func main() {
	r := gin.Default()
	r.POST("/api/auth/register", func(ctx *gin.Context) { //relativePath
		//获取参数
		name := ctx.PostForm("name")
		telephone := ctx.PostForm("telephone")
		password := ctx.PostForm("password")
		//数据验证
		if len(telephone) != 11 {
			ctx.JSON(http.StatusUnprocessableEntity, gin.H{"code": 422, "msg": "手机号必须11位"})
			return
		}
		if len(password) < 6 {
			ctx.JSON(http.StatusUnprocessableEntity, gin.H{"code": 422, "msg": "密码不少于6位"})
			return
		}
		//如果名称没有传,给一个10位的随机字符串
		if len(name) == 0 {
			name = RandomString(10)
		}

		log.Println(name, telephone, password) //简单实例

		//判断手机号是否存在--查库

		//创建用户--写库

		//返回结果
		ctx.JSON(200, gin.H{
			"msg": "注册成功",
		})

	})

	/*
		r.GET("/ping", func(c *gin.Context) {
			c.JSON(200, gin.H{
				"message": "pong",
			})
		})	//修改其为用户注册	*/
	panic(r.Run())
}

func RandomString(n int) string {
	var letters = []byte("asdfgjklzxcvbnmqwertyuiopASDFGHJKLZXCVBNMQWERTYUIOP")
	result := make([]byte, n)
	rand.Seed(time.Now().Unix())
	for i := range result {
		result[i] = letters[rand.Intn(len(letters))]
	}
	return string(result)
}

在这里插入图片描述

连接数据库
go get -u github.com/jinzhu/gorm
go get github.com/go-sql-driver/mysql

连接mysql:在该包前加入下划线_,因为加入下划线表示只执行该库的 init 函数而不对其它导出对象进行真正地导入。因为 Go 语言的数据库驱动都会在 init 函数中注册自己,所以我们只需要加入下划线导入即可。

_ "github.com/go-sql-driver/mysql"

//转自:https://blog.csdn.net/qq_45701131/article/details/113838090

抽奖

type lotteryController struct {
	Ctx iris.Context//上下文是服务器用于所有客户端的中间人 "对象"
}

上下文是服务器用于所有客户端的中间人 “对象”。对于每一个新的连接,会从 sync.Pool 中获取一个新上下文对象。上下文是 iris 的 http 流中最重要的部分。开发者发送响应到客户端的请求通过一个上下文。开发者获取请求信息从客户端的请求上下文中。

log

首先是golang自带的package log。使用godoc查看,godoc -http=:8001,然后就可以在localhost:8001/pkg/log就可以查看了。

logger是log的一个简单封装
log.New()函数原型

func New(out io.Writer, prefix string, flag int) *Logger//输出,前缀,内容
rand生成随机数
func luckyCode() int32 {
	seed := time.Now().UnixNano()                                 // rand内部运算的随机数
	code := rand.New(rand.NewSource(seed)).Int31n(int32(rateMax)) // rand计算得到的随机数
	return code
}//1-9999

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值