Go 如何导入路由
我刚刚开始了一个围棋项目,按照Pluralsight上的教程进行,但当我想将所有路径分割成一个文件路径时,遇到了一点障碍 以前我的代码运行良好: 梅因,加油Go 如何导入路由,go,Go,我刚刚开始了一个围棋项目,按照Pluralsight上的教程进行,但当我想将所有路径分割成一个文件路径时,遇到了一点障碍 以前我的代码运行良好: 梅因,加油 package main import ( "github.com/gin-gonic/gin" "net/http" ) func main() { r := gin.Default() r.LoadHTMLGlob("templates/*.html") r.GET("/", func(c
package main
import (
"github.com/gin-gonic/gin"
"net/http"
)
func main() {
r := gin.Default()
r.LoadHTMLGlob("templates/*.html")
r.GET("/", func(c *gin.Context) {
c.String(http.StatusOK, "Helo from %v", "Gin")
})
r.GET("/json", func(c *gin.Context) {
c.JSON(200, gin.H {
"status": "posted",
"message": "Hi...",
"nick": "Nick here",
})
})
r.GET("/template/index", func(c *gin.Context) {
c.HTML(http.StatusOK, "index.html", nil)
})
r.Run(":3000")
}
在此之前,我所有的代码都运行良好
然后我制作了一个如下的路由文件:
走吧
package main
import (
"github.com/gin-gonic/gin"
"net/http"
)
func registerRoutes() *gin.Engine {
r := gin.Default()
r.LoadHTMLGlob("templates/*.html")
r.GET("/", func(c *gin.Context) {
c.String(http.StatusOK, "Helo from %v", "Gin")
})
r.GET("/json", func(c *gin.Context) {
c.JSON(200, gin.H{
"status": "posted",
"message": "Hi broh",
"nick": "Nick here",
})
})
r.GET("/template/index", func(c *gin.Context) {
c.HTML(http.StatusOK, "index.html", nil)
})
return r
}
我将main.go上的代码更改为:
package main
func main() {
r := registerRoutes()
r.Run(":3000")
}
当我运行它时,我得到一个错误:
go build main.go
#命令行参数
.\main.go:4:7:undefined:registerRoutes
我试图理解它,但我总是收到错误信息。我的代码有问题吗
我的项目结构:
你需要两样东西:
- 使用
go Run./…
或go Run main.go model.go routes.go运行应用程序
- 将函数
registerRoutes
重命名为registerRoutes
,以使函数公开并在包中可见
你需要两样东西:
- 使用
go Run./…
或go Run main.go model.go routes.go运行应用程序
- 将函数
registerRoutes
重命名为registerRoutes
,以使函数公开并在包中可见
您正在此处构建一个Go文件,因此编译器将无法链接所需的routes.Go文件,从而导致上述错误。尝试“$go build”创建二进制文件,然后执行它。或者,您也可以使用“go install”。@KshitijSaraogi好的,我来试试答案@如果您觉得答案有帮助,Bertojoris可以自由投票:)您在这里构建了一个Go文件,因此编译器将无法链接所需的routes.Go文件,从而导致上述错误。尝试“$go build”创建二进制文件,然后执行它。或者,您也可以使用“go install”。@KshitijSaraogi好的,我来试试答案@如果你觉得有帮助,Bertojoris可以自由投票:没有必要导出该函数,它都在同一个包中。它应该是
go-run。
,为go-run
提供多个包参数是没有意义的(这就是“/…”所做的)。不需要导出函数,它都在同一个包中。它应该是go-run。
,为go-run
(这就是“/…”所做的)提供多个包参数是没有意义的。