gpt4 book ai didi

go > 如何从 main 重构 http 处理程序

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

我正在学习go语言,知识还有些欠缺。我正在编写 http 静态服务器(在第一阶段为 Assets 提供服务)。我也在尝试使用 gorilla/mux 包作为路由器。

到目前为止我结束了

pagekage main

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

func HomeHandler(w http.ResponseWriter, r *http.Request) {
fmt.Fprintf(w, "Hello, %q", html.EscapeString(r.URL.Path))
}

func main() {

r := mux.NewRouter()
r.HandleFunc("/", HomeHandler)
r.PathPrefix("/public/").Handler(http.StripPrefix("/public/",
http.FileServer(http.Dir("public/"))))

http.Handle("/", r)
http.ListenAndServe(":8080", nil)

}

它工作正常并为/public/下的所有文件提供服务

现在我想重构代码

r.PathPrefix("/public/").Handler(http.StripPrefix("/public/",
http.FileServer(http.Dir("public/"))))

保持状态

r.PathPrefix("/public/").Handler(PublicHandler)

这很基础,我想学习如何编写更好看的代码。

你能就此提出建议吗?谢谢。

最佳答案

只需将处理程序分配给一个变量:

PublicHandler := http.StripPrefix("/public/", http.FileServer(http.Dir("public/")))
r.PathPrefix("/public/").Handler(PublicHandler)

关于go > 如何从 main 重构 http 处理程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23542466/

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