Я только начал проект Go, следуя учебному пособию по Pluralsight, но я столкнулся с некоторым препятствием, когда хотел разделить всех моих маршрутов на один файл маршрута .
Ранее мой код работал хорошо:
main.go
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")
}
До этого момента весь мой код работает нормально .
Затем я сделал файл маршрута следующим образом:
rout.go
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
# command-line-arguments
.\main.go:4:7: undefined: registerRoutes
Я пытался понять это, но всегда получаю это сообщение об ошибке.Что-то не так с моим кодом?
Структура моего проекта: