我是Golang的新手,需要一些幫助。正如您在下面的代碼中看到的,我正在嘗試在 Golang 中創建 REST API。我使用mux(Gorilla Mux) 和pq(PostgreSQL driver) 作為第三方庫。不想使用 ORM。在文件內部application.go,我有InitializeRoutes一個包含所有可行路線列表的函數。GetFactors函數處理這些路由之一。我試圖GetFactors在其他名為factors.go. 內部factors.go文件我想使用Application在application.go. 如何正確制作?現在你可以看到它們在不同的包中。這就是為什么factors.go文件看不到Application結構的原因。項目結構:main.goapplication.gocontrollers factors.go主要去:package mainfunc main() { application := Application{} application.Initialization() application.Run("localhost:8000")}應用程序去:package mainimport ( "database/sql" "github.com/gorilla/mux" "log" "net/http" "rest-api/configurations")type Application struct { Router *mux.Router Database *sql.DB}func (application *Application) Initialization() { var err error application.Database, err = configurations.DatabaseConnection() if err != nil { log.Fatal(err) } application.Router = mux.NewRouter() application.Router.StrictSlash(true) application.InitializeRoutes()}func (application *Application) Run(address string) { log.Fatal(http.ListenAndServe(address, application.Router))}func (application *Application) InitializeRoutes() { application.Router.HandleFunc("/api/factors", application.GetFactors).Methods("GET") // other code}控制器/factors.go:package controllersimport ( "net/http")func (application *Application) GetFactors(rw http.ResponseWriter, request *http.Request) { // code}
1 回答

湖上湖
TA貢獻2003條經驗 獲得超2個贊
main.go
routes
? ? routes.go
controllers
? ? factors.go
models
? ? factors.go
主要去:
import (
? ? "your_project_name/routes"
)
func main()? {
? ? // code
? ? router := mux.NewRouter()
? ? routes.Use(router)
? ? // code
}
路線/路線.去:
package routes
import (
? ? "github.com/gorilla/mux"
? ? "your_application_name/controllers"
)
func Use(router *mux.Router) {
? ? router.HandleFunc("/api/factors", controllers.GetFactors).Methods("GET")
}
控制器/factors.go:
package controllers
var GetFactors = func(res http.ResponseWriter, req *http.Request) {
? ? // code
}
- 1 回答
- 0 關注
- 144 瀏覽
添加回答
舉報
0/150
提交
取消