gpt4 book ai didi

go - httprouter 设置自定义 NotFound

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

我正在使用 https://github.com/julienschmidt/httprouter在我的 Go 项目中。

我刚才问了这个问题,@icza 解决了这个问题:httprouter configuring NotFound但是现在,开始一个新项目并使用非常相似的代码时,我似乎在控制台中遇到了错误。

尝试配置自定义处理程序 NotFoundMethodNotAllowed 我正在使用:

router.NotFound = customNotFound
router.MethodNotAllowed = customMethodNotAllowed

产生:

cannot use customNotFound (type func(http.ResponseWriter, *http.Request)) as type http.Handler in assignment:                                                                               
func(http.ResponseWriter, *http.Request) does not implement http.Handler (missing ServeHTTP method)

cannot use customMethodNotAllowed (type func(http.ResponseWriter, *http.Request)) as type http.Handler in assignment:
func(http.ResponseWriter, *http.Request) does not implement http.Handler (missing ServeHTTP method)

我的函数是这样的:

func customNotFound(w http.ResponseWriter, r *http.Request) {
core.WriteError(w, "PAGE_NOT_FOUND", "Requested resource could not be found")
return
}

func customMethodNotAllowed(w http.ResponseWriter, r *http.Request) {
core.WriteError(w, "METHOD_NOT_PERMITTED", "Request method not supported by that resource")
return
}

在过去的几个月里,这个包是否有一些重大变化,因为我无法弄清楚为什么我在一个项目中遇到错误而在另一个项目中却没有?

最佳答案

自从在 httprouter 中提交 70708e4600 之后,router.NotFound 不再是 http.HandlerFunc,而是 http.Handler。所以你必须通过 http://golang.org/pkg/net/http/#HandlerFunc 调整你的功能如果您使用最近提交的 httprouter。

以下应该有效(未经测试):

router.NotFound = http.HandlerFunc(customNotFound)

关于go - httprouter 设置自定义 NotFound,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32224003/

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