我正在尝试访问控制器main.go但是我收到以下错误:
./main.go:34:28: cannot refer to unexported name controllers.getUserDetails
./main.go:34:28: undefined: controllers.getUserDetails
Run Code Online (Sandbox Code Playgroud)
这是我的一小段main.go,我删除了一些额外的代码
package main
import (
"net/http"
"os"
"log"
"github.com/urfave/negroni"
"github.com/gorilla/mux"
"github.com/joho/godotenv"
"Go-Social/controllers"
)
func main() {
router := mux.NewRouter()
UserRouter := router.PathPrefix("/api/user").Subrouter()
UserRouter.HandleFunc("", controllers.getUserDetails).Methods("GET")
env := os.Getenv("GO_ENV")
if "" == env {
env = "Development"
}
// appending middlewares
server := negroni.Classic()
// router handler with negroni
server.UseHandler(router)
// starting server
server.Run(":" + os.Getenv(env + "_PORT"))
}
Run Code Online (Sandbox Code Playgroud)
我的controller.go档案
package controllers
import (
"net/http"
"fmt"
)
func getUserDetails(w http.ResponseWriter, r *http.Request) {
fmt.Println("here")
message := "Hello World"
w.Write([]byte(message))
}
Run Code Online (Sandbox Code Playgroud)
请帮助我是Go的新手.提前致谢.
要使用其他包中的函数,需要导出它(GetUserDetails)
如说在这里
可以导出标识符以允许从另一个包访问它
func GetUserDetails(w http.ResponseWriter, r *http.Request) {
fmt.Println("here")
message := "Hello World"
w.Write([]byte(message))
}
Run Code Online (Sandbox Code Playgroud)