因为是第一次搞go的项目,也没有学过go这个语言,凭借着强大的运气开始修改开源项目 wayne的源码。
运行过程中,遇到了好多问题。第一个问题就是后端的go项目没法启动。
1. 数据库报错
第一次启动报错:
panic: Error 1045: Access denied for user ''@'localhost' (using password: NO)
goroutine 1 [running]:
github.com/Qihoo360/wayne/src/backend/initial.InitDb()
E:/idea_workspace/wayne/src/backend/initial/db.go:26 +0x225
github.com/Qihoo360/wayne/src/backend/cmd.Run()
E:/idea_workspace/wayne/src/backend/cmd/root.go:14 +0x2d
main.main()
E:/idea_workspace/wayne/src/backend/main.go:9 +0x27
Debugger finished with exit code 0
1
2
3
4
5
6
7
8
9
10
11
12
这一看就是数据库的问题,命名app.conf中填了数据库的配置的,为什么还是没用呢?
然后我手动在代码里面改。
这么一改,还真的有用。再次启动项目。
2. 证书文件找不到
panic: read E:\idea_workspace\wayne: The handle is invalid.
goroutine 1 [running]:
github.com/Qihoo360/wayne/src/backend/initial.readKey(0x1ec6042, 0xd, 0x0, 0x0, 0x0)
E:/idea_workspace/wayne/src/backend/initial/rsa_key.go:45 +0x2c8
github.com/Qihoo360/wayne/src/backend/initial.InitRsaKey()
E:/idea_workspace/wayne/src/backend/initial/rsa_key.go:14 +0x4f
github.com/Qihoo360/wayne/src/backend/cmd.Run()
E:/idea_workspace/wayne/src/backend/cmd/root.go:26 +0x152
main.main()
E:/idea_workspace/wayne/src/backend/main.go:9 +0x27
Debugger finished with exit code 0
1
2
3
4
5
6
7
8
9
10
11
12
13
他这是又报了什么东西? debug进去看到是一个证书的路径问题。我找了下项目里面的证书文件,然后又手动改了下代码。
好,这么一改,也能用了。再次启动。发现启动成功。很高兴啊。
3. 登录页面缺少输入框
可能高兴地有点早,启动前端项目后,访问,发现,页面是这样的。
很蒙蔽了。。。
然后通过F12找到原因,就是一个api的response里面的返回内容有点奇怪。
这里enableDBLogin=false,看着就很奇怪,然后就找到这个api对应的代码。
发现在这里,然后又是手动把这个默认值false改成true,哦豁,重启之后,发现他是真的可以用了。
但是这个也太不科学了吧,为什么我配置文件里面的东西他读取不到???
4. 寻找根本原因
然后现在坐不住了,这肯定不能一直手动去改,我猜这肯定是他没读取到配置文件的原因。
看了下beego.AppConfig这个玩意好像就是这个项目里面用来获取配置文件的一个类(我学java的,暂时叫他类吧),然后开始百度,谷歌。。。
然后发现,原来这个问题在go里面很常见啊。。。
然后我就照这个文章,改了我的工作目录。
之前的工作目录:
改完之后:
然后把我改动的代码都去掉,发现运行起来舒舒服服的,妈妈再也不用担心我go项目运行不起来了!