1 回答
TA贡献1806条经验 获得超8个赞
在“运行”功能中,您似乎是:
不检查错误 - 我认为你应该。
处理一个可变的全局变量——如果你不这样做,你的代码将更清晰,更容易测试和调试。
在 data.Run() 中处理结构后,如何将结构显式传递给处理后的数据的 handlers.getWeather()。我在这里使用指针提供了混合结果。
创建一个结构,其中包含处理呼叫所需的内容。为该结构实现 http.Handler。在设置服务器时使用它。
例子:
package main
import (
"encoding/json"
"log"
"net/http"
)
type TravelHandler struct {
Data interface{} // the preloaded data you need to serve http
}
func (th TravelHandler) ServeHTTP(w http.ResponseWriter, r *http.Request) {
err := json.NewEncoder(w).Encode(th.Data)
if err != nil {
http.Error(w, "could not encode data", 500)
}
}
func createTravelHandler() *TravelHandler {
// populate travel handler
return &TravelHandler{}
}
func main() {
th := createTravelHandler() // no mutable global, return the handler from a function (or pipe it through several functions)
err := http.ListenAndServe("localhost:3000", th)
log.Println(err)
}
- 1 回答
- 0 关注
- 64 浏览
添加回答
举报