我是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 关注
- 115 浏览
添加回答
举报
0/150
提交
取消