golang
beego实战
§ go框架beego使用:实战篇
前言
配置beego的教程在我另一篇博文:https://blog.csdn.net/Acegem/article/details/129387963?spm=1001.2014.3001.5501
1、创建新项目
bee new myproject
2、(sessionon)session开启失败报错
报错信息
[config.go:191] Handler crashed with error runtime error: invalid memory address or nil pointer dereference
解决方法
这种报错多是由于没开启或没正确开启session引起的,开启session方式有两种:
法一:配置文件(配置session开启)
在 conf/app.conf 设置:
sessionon = true
这里尤为注意!在app.conf 这种.conf文件后面不能有注释!,如下:
错误注释写法:
sessionon = true # session开关,true表启用session功能
正确注释写法:
# session开关,true表启用session功能
sessionon = true
法二:主函数(开启session)
在主函数中写入:beego.BConfig.WebConfig.Session.SessionOn = true
func main() {
/**
实现session启用可以通过conf/app.conf配置文件设置
sessionon = true
或者在main方法中写入
beego.BConfig.WebConfig.Session.SessionOn = true
*/
beego.BConfig.WebConfig.Session.SessionOn = true
beego.Run()
}
3、没有go.mod的处理步骤
cd 项目目录名
# 生成一个初始化的 go.mod 文件,文件内容与你之前安装的bee版本也有关。
go mod init 项目目录名
#** 需要联网 **#
# 将需要的包写入go.mod文件中,并生成 go.sum 文件
go get 项目目录名
# 执行,会自动下载go.mod需要的包。
bee run
4、执行bee run的时候报错 Error: 0004 Failed to build the application: main.go:5:2: missing go.sum entry for module
报错信息
main.go:5:2: missing go.sum entry for module providing package github.com/beego/beego/v2/server/web
ERROR ▶ 0004 Failed to build the application: main.go:5:2: missing go.sum entry for module providing package github.com/beego/beego/v2/server/web
原因
可能是因为go的版本新,最新版的go启用了go.mod
模式,也就是包管理工具,而管理包的目录未安装相应的模块包。
解决办法
法1
输入
go build -mod=mod
来安装go.mod
(默认在项目目录下)中的依赖包。
再执行
bee run
注意: 一般go.mod
文件在使用bee初始化新建项目时(bee new 项目名),就默认在项目目录下生成了,如果没有go.mod
文件,需要用go
命令初始化一个。
cd 项目目录名
# 生成一个初始化的 go.mod 文件,文件内容与你之前安装的bee版本也有关。
go mod init 项目目录名
#** 需要联网 **#
# 将需要的包写入go.mod文件中,并生成 go.sum 文件
go get 项目目录名
# 执行,会自动下载go.mod需要的包。
bee run
法2(未验证)
关掉go.mod
# go env 可列出所有go相关环境配置, -w 表写入
go env -w GO111MODULE=off
附: 输入 go env
可看到 GO111MODULE默认是开启的。