gpt4 book ai didi

不同 Controller 中的 Golang 路由

转载 作者:数据小太阳 更新时间:2023-10-29 03:15:06 25 4
gpt4 key购买 nike

我是 Golang 的新手,我正在尝试学习如何进行高效的路由。例如,我有一个 Controller 文件夹/目录,在该 Controller 内,我想使用不同的 Func/方法和它们自己独特的路由,但我不知道该怎么做。我已经下载了 github.com/gorilla/mux 包,我的应用程序如下所示 enter image description here

我的应用程序的主要部分如下所示,并且运行良好:tim.go

package main

import(
"net/http"
"fmt"
"github.com/gorilla/mux"
)


func HomeHandler(writer http.ResponseWriter, req *http.Request) {
writer.WriteHeader(200)
fmt.Fprintf(writer, "Home!!!\n")
}
func main() {
r := mux.NewRouter()
r.HandleFunc("/home", HomeHandler).Name("bob")
http.Handle("/",r)
http.ListenAndServe(":8000", nil)
}

问题是如何让我的 Controller 文件中的函数/方法也显示在浏览器上。当我转到该 URL 时,我的 sample.go 文件没有显示在浏览器中

package Controllers



import(
"net/http"
"fmt"
"github.com/gorilla/mux"
)


func HomeHandler(writer http.ResponseWriter, req *http.Request) {
writer.WriteHeader(200)
fmt.Fprintf(writer, "New Home")
}
func main() {
r := mux.NewRouter()
r.HandleFunc("/new", HomeHandler).Name("bob")
http.Handle("/",r)
http.ListenAndServe(":8000/new", nil)
}

当我进入浏览器并输入 localhost:8000/new 时,它说找不到文件。任何建议都会很棒

最佳答案

我假设您运行 tim.go 文件来启动服务器。

如果是这样,问题是你没有调用 /new 的路由,你应该用 /home 得到答案。

为此,您应该将您的HomeHandler 函数移动到Controllers 包,然后在您的主广告中导入该包以实例化您需要的路由。

希望这对您有所帮助。

关于不同 Controller 中的 Golang 路由,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38086377/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com