<分区>
我正在尝试在 Web 服务中整合路由功能。包 main 有两个值得关注的文件,route.go
和 main.go
。
在 route.go
中,我定义路由如下:
package main
import (
"github.com/justinas/alice"
"net/http"
)
func (app *Application) Routes() http.Handler {
standardMiddleware := alice.New(app.logRequest)
mux := http.NewServeMux()
mux.HandleFunc("/ping", helpers.Ping)
return standardMiddleware.Then(mux)
}
在 main.go
中,我尝试按如下方式执行应用程序:
package main
import (
"flag"
"log"
"net/http"
"os"
)
type Application struct {
errorLog *log.Logger
}
func main() {
addr := flag.String("addr", ":8080", "HTTP Network Address")
flag.Parse()
errorLog := log.New(os.Stderr, "ERROR\t", log.Ldate|log.Ltime|log.Lshortfile)
app := &Application{
errorLog: errorLog,
}
srv := &http.Server{
Addr: *addr,
ErrorLog: errorLog,
Handler: app.Routes(),
}
err := srv.ListenAndServe()
errorLog.Fatal(err)
}
当我执行程序时出现以下错误:app.Routes undefined (type *Application has no field or method Routes)
我不确定为什么该方法没有正确注册?