Ich bin also ziemlich neu und versuche, diesem Tutorial zu folgen -
http://thenewstack.io/make-a-restful-json-api-go/
Im Moment ist dies meine Dateistruktur -
EdData/
dataEntry/
populateDb.go
main.go
handlers.go
routes.go
Wenn ich laufe go run main.go
, erhalte ich diesen Fehler./main.go:11: undefined: NewRouter
So sieht mein main.go aus -
package main
import (
"net/http"
"log"
)
func main() {
router := NewRouter()
log.Fatal(http.ListenAndServe(":8080", router))
}
func checkErr(err error) {
if err != nil {
panic(err)
}
}
So sieht meine route.go aus
package main
import (
"net/http"
"github.com/gorilla/mux"
)
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 {
"Index",
"GET",
"/",
Index,
},
}
und so sieht mein handlers.go aus
package main
import (
"fmt"
"net/http"
)
func Index(w http.ResponseWriter, r *http.Request) {
fmt.Fprintln(w, "WELCOME!")
}
Wenn ich versuche, route.go zu erstellen, erhalte ich, dass der Index undefiniert ist, und wenn ich versuche, handlers.go zu erstellen, erhalte ich
# command-line-arguments runtime.main: undefined: main.main
Wie bringe ich das zum Laufen? Wo führe ich den Befehl go run aus? Muss ich alle abhängigen Dateien manuell erstellen?
Aus der go run
Hilfe:
usage: run [build flags] [-exec xprog] gofiles... [arguments...]
Run compiles and runs the main package comprising the named Go source files.
A Go source file is defined to be a file ending in a literal ".go" suffix.
Nur die übergebenen Dateien go run
werden in die Kompilierung aufgenommen (ausgenommen importierte Pakete). Daher sollten Sie alle Ihre Go-Quelldateien angeben, wenn Sie Folgendes verwenden go run
:
go run *.go
# or
go run main.go handlers.go routes.go
Dieser Artikel stammt aus dem Internet. Bitte geben Sie beim Nachdruck die Quelle an.
Bei Verstößen wenden Sie sich bitte [email protected] Löschen.
Lass mich ein paar Worte sagen