登录
首页 >  Golang >  Go问答

beego 程序执行的时候一直提示 panic: 'GetSysStatus' method doesn't exist 报错?

来源:SegmentFault

时间:2023-02-22 08:40:27 355浏览 收藏

本篇文章向大家介绍《beego 程序执行的时候一直提示 panic: 'GetSysStatus' method doesn't exist 报错?》,主要包括Java、go、beego、PHP、后端,具有一定的参考价值,需要的朋友可以参考一下。

问题内容

我是在 github 上 clone 的别人的源码,走了一遍流程 mod init mod tidy build . 然后运行生成的那个可执行文件,一点问题都没有。但是我做了点改动:

// 路由设置
beego.Router("/", &controllers.MainController{}, "*:Index")
beego.Router("/login", &controllers.MainController{}, "*:Login")
beego.Router("/logout", &controllers.MainController{}, "*:Logout")
beego.Router("/profile", &controllers.MainController{}, "*:Profile")
beego.Router("/gettime", &controllers.MainController{}, "*:GetTime")
//下面这行是我加的
beego.Router("/getsysstatus", &controllers.MainController{}, "*:GetSysStatus")
beego.Router("/help", &controllers.HelpController{}, "*:Index")
beego.AutoRouter(&controllers.TaskController{})
beego.AutoRouter(&controllers.GroupController{})

beego.BConfig.WebConfig.Session.SessionOn = true
beego.Run()

我在 app/controllers/main.go 文件里面也加了对应的方法:

// 获取系统时间
func (this *MainController) GetTime() {
    out := make(map[string]interface{})
    out["time"] = time.Now().UnixNano() / int64(time.Millisecond)
    this.jsonResult(out)
}

// 获取系统当前状态,这个方法是我加的
func (this *MainController) GetSysStatus() {
    out := make(map[string]interface{})
    out["time"] = 1
    this.jsonResult(out)
}

然而执行新生成的可执行文件一直报错:

panic: 'GetSysStatus' method doesn't exist in the controller MainController

goroutine 1 [running]:
github.com/astaxie/beego.(*ControllerRegister).addWithMethodParams(0xabc15c, {0xac38af, 0x4418b1}, {0xbb85e8, 0xc000238a20}, {0x0, 0x0, 0x0}, {0xc0000fbf50, 0x1, ...})
        /home/yhm/go/pkg/mod/github.com/astaxie/beego@v1.12.3/router.go:183 +0x788
github.com/astaxie/beego.(*ControllerRegister).Add(...)
        /home/yhm/go/pkg/mod/github.com/astaxie/beego@v1.12.3/router.go:163
github.com/astaxie/beego.Router(...)
        /home/yhm/go/pkg/mod/github.com/astaxie/beego@v1.12.3/app.go:258
main.main()
        /home/yhm/web/webcron/main.go:39 +0x3dd

请大神帮忙看看,这是为啥啊?

奇怪了,我把我加的那个路由注释了,然后把 app/controllers/main.go 文件里面的代码都删了,重新build,然后都能运行,貌似不使用 app/controllers/main.go 这个文件一样?

正确答案

解决了,这种从 github 拉下来的代码 import 都是远程的代码,我把 import 相关的都改成本地文件了,现在没问题了。

本篇关于《beego 程序执行的时候一直提示 panic: 'GetSysStatus' method doesn't exist 报错?》的介绍就到此结束啦,但是学无止境,想要了解学习更多关于Golang的相关知识,请关注golang学习网公众号!

声明:本文转载于:SegmentFault 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>