Ausführen eines Go-Programms mit mehreren Dateien

praks5432:

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?

Tim Cooper:

Aus der go runHilfe:

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 runwerden 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.

bearbeiten am
0

Lass mich ein paar Worte sagen

0Kommentare
LoginNach der Teilnahme an der Überprüfung

Verwandte Artikel

Ausführen eines Programms mit mehreren Dateien in SLURM

Ausführen eines ähnlichen Programms in mehreren Kernen mit unterschiedlichen Variablen

Zu viele geöffnete Dateien / Kein solcher Hostfehler beim Ausführen eines Go-Programms, das gleichzeitig Anforderungen stellt

Ausführen eines Python-Programms von Go

Ausführen eines Programms mit Platzhaltern als Argumenten

Verwenden Sie Ant zum Ausführen eines Programms mit Befehlszeilenargumenten

Ausführen eines Programms mit Gui ohne Anzeige in Ubuntu

Kompilieren und Ausführen eines AC-Programms mit exec ()

Ausführen eines C # -Programms mit Befehlszeilenansagen in Visual Studio Code

Ausführen eines Programms mit Shell - Kompilierungsfehler: Objekt erforderlich

Ausführen eines einfachen C ++ - Programms mit Caffe

Ausführen eines Programms in gdb mit einer Option

Organisieren eines Go-Projekts mit mehreren Dateien

Kompilieren eines kompilierten Programms mit Go

Ausführen eines Spring Boot-Projekts mit mehreren Hauptklassen

Unterschiedliche Ergebnisse beim Ausführen eines Programms mit Valgrind mit (out) using Massif

Können Sie in Go eine unabhängige Instanz eines Programms ausführen?

Verfolgen eines Programms mit mehreren Gabeln im if / else-Block

In der Schleife eines Programms mit mehreren Menüs hängengeblieben

Zeitliche Komplexität eines Programms mit mehreren Algorithmen

Organisieren eines Go-Projekts mit mehreren Dateien mit privaten Supportdateien

Verarbeitungsstopps beim Ausführen eines Programms

Maven: Lebenszyklusphase zum Ausführen eines Programms?

Befehlszeilenargumente zum Ausführen eines C ++ - Programms

Ausführen eines Haskell-Programms in ghci

Ausführen eines interaktiven Programms in Python

Ausführen eines externen Programms in TCL

AWS ec2 zum Ausführen eines Python-Programms mit Latex und OpenCV

Skript zum Ausführen eines MPI-Programms mit drei Eingabedateien als Befehlszeilenargumente