所以这可能是我对Golang的有限理解,因为我仍在学习。但是我在应用程序的主程序包/文件中构建了一个正常工作的路由器功能,可以传入上下文,并且工作正常。
但是,当我将其移至其自己的程序包时,它停止工作了,我是否认为这与不从主程序包传递上下文有关?
这可行:
func router(e *echo.Echo) {
addresController := &controllers.AddressController{
config.NewController(),
}
//Address Routes
address := e.Group("/address")
address.GET("/all", func(c echo.Context) error {
return addresController.AddressList(c)
})
}
像这样加载到主函数中,
func main() {
//Build The Echo Framework
e := echo.New()
//Load Router Function
router(e)
//Start Echo Web Server
e.Logger.Fatal(e.Start(":5060"))
}
但是当我在主要功能中使用此功能进行操作时,
router.BuidlRoutes(e)
并将所有地址路由放入BuildRoutes
函数中,我得到空的结果。
谢谢
更新
我的BuildRouter
功能要求:
func BuidlRoutes(e *echo.Echo) {
addresController := &controllers.AddressController{
config.NewController(),
}
//Address Routes
address := e.Group("/address")
address.GET("/all", func(c echo.Context) error {
return addresController.AddressList(c)
})
address.GET("/id/:id", func(c echo.Context) error {
return addresController.AddressByID(c)
})
}
这是我的Address Controller Struct
type AddressController struct {
*config.MyController
}
此地址控制器正在加载MyController
type MyController struct {
*DBSettings
}
func NewController() *MyController {
return &MyController{}
}