Gin框架学习day01

第一天 环境搭建

一、安装、配置Gin

安装好go的SDK后,配置好SDK和GOPATH环境变量后,开始Gin框架的搭建:
按照Gin官网的快速上手,直接使用:

$ go get -u github.com/gin-gonic/gin

发现出现了很多包无法下载的问题,查了资料发现还是代理的问题,还好Golang在Github上已经建立了镜像库,这个开源项目goproxy.io已经实现了我们想要的东西,只需要在命令行执行下面两行配置就行了(其他什么都不需要做):

go env -w GO111MODULE=on
go env -w GOPROXY=https://goproxy.io,direct

执行以上两行命令后,接下来的go命令将从公共代理镜像中快速拉取之前所缺的依赖代码了,所以这时候重新执行一下“$ go get -u github.com/gin-gonic/gin”,之前缺的包就补上了。
但是,下载到最后还是出现了一个问题:

package io/fs is not in GOROOT

先忽略这个问题,执行以下代码测试Gin框架是否安装成功:

package main

import (
	"github.com/gin-gonic/gin"
)

func sayhello(c *gin.Context) {
	c.JSON(200, gin.H{
		"message": "hello go gin!",
	})

}

func main() {
	r := gin.Default()        //默认的路由引擎
	r.GET("/hello", sayhello) //get请求访问时执行sayhello
	//启动服务
	r.Run(":9090")
}

发现报错:

cannot find module providing package github.com/gin-gonic/gin: working directory is not part of a module

接着查呗,发现是因为前面我们通过“go env -w GO111MODULE=on”开启了go mod来管理包路径,导致包管理并非官方所说的在GOPATH\src\,而是去了GOPATH\src\pkg\目录下,此时需要用go mod引入这些包,解决import获取不了包的问题,也就是运行以下两条命令:

go mod init gin
 
 go mod edit -require github.com/gin-gonic/gin@latest

之后再次运行测试项目,之前忽略的错误果然出现了,即“package io/fs is not in GOROOT”,配置环境真的麻烦…
没办法接着找呗,错误原因是:io/fs只在golang 1.16及以上版本才支持,而我使用的golang版本是1.15.6,网上给出的意见是升级golang版本,但是,在实际生产中,一般是不能轻易升级所使用语言的版本的,所以尽量考虑不升级golang版本的解决方案:
也就是在go.mod中,将gin的版本改为v1.6.3,此时go.mod中的代码为:

module gin

go 1.15

require github.com/gin-gonic/gin v1.6.3

最后,再次运行测试代码,测试成功:
在这里插入图片描述
二、热加载
像Python的Flask框架,有debug模式,启动时传入debug=true就可以热加载了(即更改源码并保存后,自动触发更新,浏览器上刷新即可,免去了杀进程、重新启动之苦)。Gin原生不支持热加载,但是有很多额外的库可以支持,如:

github.com/codegangsta/gin
github.com/pilu/fresh

我使用fresh:

go get -v -u github.com/pilu/fresh

按照网上的教程,执行完上述命令后直接执行fresh就可以了,但是我运行fresh会提示fresh不是一个命令,然后我发现fresh.exe是自动安装在了GOPATH/bin文件夹下,跳到该文件夹下运行fresh.exe时,又会提示没有main这个package(有main package才怪,main package在别的文件夹下),网上找了半天,找到了一种有效的解决方案,就是在终端运行以下命令(哪个文件夹下打开的终端都可以,我是在自己的GOPATH文件夹下):

$env:Path = [System.Environment]::GetEnvironmentVariable("Path","Machine")

然后定位到项目所在的文件夹,输入“fresh”,就开始热加载了:
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值