gpt4 book ai didi

Gorilla Mux 路由未解析

转载 作者:IT王子 更新时间:2023-10-29 02:23:30 24 4
gpt4 key购买 nike

因此,我正在使用 Go 和 Gorilla Mux 开发一个简单的 RESTful API。我的第二条路线不工作时遇到问题,它返回 404 错误。我不确定问题出在哪里,因为我是 Go 和 Gorilla 的新手。我敢肯定这是非常简单的事情,但我似乎无法找到它。我认为我使用不同的自定义包可能是一个问题。

这个问题类似,Routes returning 404 for mux gorilla ,但公认的解决方案并没有解决我的问题

这是我的代码:

Router.go:

package router

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

type Route struct {
Name string
Method string
Pattern string
HandlerFunc http.HandlerFunc
}

type Routes []Route

func NewRouter() *mux.Router {

router := mux.NewRouter().StrictSlash(true)
for _, route := range routes {
router.
Methods(route.Method).
Path(route.Pattern).
Name(route.Name).
Handler(route.HandlerFunc)
}

return router
}

var routes = Routes{
Route{
"CandidateList",
"GET",
"/candidate",
CandidateList,
},
Route{
"Index",
"GET",
"/",
Index,
},
}

Handlers.go

package router

import (
"fmt"
"net/http"
)

func Index(w http.ResponseWriter, r *http.Request) {
fmt.Fprintln(w, "Welcome!")
}

func CandidateList(w http.ResponseWriter, r *http.Request) {
fmt.Fprintln(w, "CandidateList!")
}

Main.go

package main

import (
"./router"
"log"
"net/http"
)

func main() {
rout := router.NewRouter()
log.Fatal(http.ListenAndServe(":8080", rout))
}

仅访问 localhost:8080 返回欢迎!但是转到 localhost:8080/candidate 会返回 404 Page Not Found 错误。我感谢任何输入和帮助!谢谢!

这是我的 Router.go 文件的更新版本,仍然存在同样的问题。

Router.go

package router

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

type Route struct {
Method string
Pattern string
HandlerFunc http.HandlerFunc
}

type Routes []Route

func NewRouter() *mux.Router {

router := mux.NewRouter().StrictSlash(true)
for _, route := range routes {
router.
Methods(route.Method).
Path(route.Pattern).
Handler(route.HandlerFunc).GetError()
}

return router
}

var routes = Routes{
Route{
"GET",
"/candidate",
CandidateList,
},
Route{
"GET",
"/",
Index,
},
}

最佳答案

看来我的项目保留了主 src 目录中旧版本的 Router.go 和 Handlers.go 文件。通过删除这些重复文件并使用 go run Main.go 重新运行 Main.go,我能够识别出路由。

关于Gorilla Mux 路由未解析,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34910997/

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