一、godoc 命令启动本地golang web网站
命令窗口指向目录后,开启端口命令:
godoc -http=:8080
运行完成后打开浏览器输入网址:http://localhost:8080能看到网站,并查看帮助文档
如果提示godoc命令不存在等报错,则需要如下操作:
命令无效的原因是go 1.13 版本后 移除了godoc相关的一些命令,因此需手动安装
下面是安装使用该命令的方法:
第一步
进入命令行
输入下面两行代码
go env -w GO111MODULE=on
go env -w GOPROXY=”https://goproxy.io,direct”
这是配置相关代理
第二步
命令行输入,安装godoc
go get golang.org/x/tools/cmd/godoc
安装完成后即可使用godoc命令,生成文档
二、配置MYSQL数据库
main.go文件里也可以配置数据库
beego框架里一般有个models/db.go文件,通过orm类实例化数据库链接
命名格式如下:
dsn := dbuser + ":" +dbpassword +"@tcp("+dbhost+":"+dbport+")/"+dbname+"?charset=utf8&loc=Asia%2FShanghai" orm.RegisterDataBase("default","mysql",dsn)
三、路由定义文件
一般有个路由routers/router.go文件定义路由
四、使用go搭建单页面的web服务器
package main
import (
“fmt”
“net/http”
“strings”
“log”
)
func sayhelloName(w http.ResponseWriter, r *http.Request) {
fmt.Println(r.Method)
r.ParseForm() //解析参数,默认是不会解析的
fmt.Println(r.Form) //这些信息是输出到服务器端的打印信息
fmt.Println(“path”, r.URL.Path)
fmt.Println(“scheme”, r.URL.Scheme)
fmt.Println(r.Form["url_long"])
for k, v := range r.Form {
fmt.Println(“key:”, k)
fmt.Println(“val:”, strings.Join(v, “”))
}
fmt.Fprintf(w, “Hello astaxie!”) //这个写入到w的是输出到客户端的
}
func main() {
http.HandleFunc(“/hello/”, sayhelloName) //设置访问的路由
err := http.ListenAndServe(“:9090″, nil) //设置监听的端口
if err != nil {
log.Fatal(“ListenAndServe………..: “, err)
}
}
五、下载项目依赖包
go mod vendor
六、运行项目与文件命令
go run main.go
七、golang项目修改文件后,怎么做到程序自动编译,直接访问地址看到效果,不用每次都要go run
办法1:
因为目前项目用得beego框架,bee工具有自带热编译命令(bee工具也适用其他GO项目)
https://beego.me/docs/install/bee.md
第一步:定位到go目录,安装bee工具
>cd c:\go
>go get -u github.com/beego/bee/v2
第二部:
新建窗口,定位到go项目目录,执行如下命令
>bee run
完成,窗口保持,当项目文件有修改更新时,窗口会自动监控执行go run main.go,也就是完成了热编译
办法2:
通过fresh、gin进行热部署
https://blog.csdn.net/u014155085/article/details/106571256
出现疑难问题:
exec git:executable file not found in PATH
解决方案:1、可能是未安装git,及环境变量配置不正确,参考文章https://blog.csdn.net/Traditional_/article/details/113599736
1.打开“环境变量”设置界面方法一,在“我的电脑”上右击鼠标,在弹出菜单中选择“属性”。
2.在“系统”界面选择“高级系统设置”~“高级”~“环境变量”,从而进行环境变量配置。
2、检查Go语言依赖的代理地址(同上),我应该是执行了下面命令解决了上面热部署包安装的问题
go env -w GO111MODULE=on
go env -w GOPROXY=https://goproxy.cn,direct
办法3:
gowatch,同方法2类似
安装
go get github.com/silenceper/gowatch
进入项目程序目录
执行gowatch即可
如果源码有修改会自动重新编译
注:目录中不能有其它main包 会报错
办法4:
go get -u github.com/cosmtrek/air
进入main文件目录下 执行air
就会自动监听编译