So aktivieren Sie Hot Reload in Ihrem Gin-Projekt

WBOY
Freigeben: 2024-08-22 20:31:02
Original
1047 Leute haben es durchsucht

How to enable hot reload in your Gin project

Gin ist eines der schnellsten Frameworks in der Go-Welt. Allerdings fehlt in Gin eine Funktion: Hot Realod. Damit ich Ihnen in diesem Blog zeigen kann, wie Sie die Hot-Reload-Funktion in Ihrem Gin-Projekt aktivieren können.

Angenommen, dies ist Ihr main.go-Fie

package main

import (
    "fmt"
    "net/http"
    "github.com/gin-gonic/gin"
)

func successResponse(data interface{}) gin.H {
    return gin.H{
        "status": "success",
        "data": data,
    }
}

func successResponseWithMessageAndCode(data interface{}, message string, code int,c *gin.Context) {
    c.JSON(code, gin.H{
        "status": "success",
        "data": data,
        "message": message,
    })
}

func main() {
    r := gin.Default()
    fmt.Println("Hello World")
    r.GET("/", func(c *gin.Context) {
        data:= map[string]interface{}{
            "message": "Hello World",
        }
        successResponseWithMessageAndCode(data, "Success", http.StatusOK, c)
    })

    r.GET("/hello", func(c *gin.Context) {
        c.JSON(http.StatusOK, gin.H{
            "message": "Hello World",
        })
    })

    r.Run("localhost:8080")

}
Nach dem Login kopieren

Damit wir Air (https://github.com/air-verse/air) nutzen können – Live-Neuladen für Ihre Go-Apps

Air mit diesem Befehl installieren?

go install github.com/air-verse/air@latest
Nach dem Login kopieren

Fügen Sie dann mit diesem Befehl die Datei .air.toml hinzu

air init
Nach dem Login kopieren

Wenn der Air-Befehl nicht gefunden wird, liegt das möglicherweise daran, dass sich das Go-bin-Verzeichnis nicht in Ihrem PFAD befindet

In diesem Fall verwende ich das Fischterminal

Lassen Sie uns zunächst herausfinden, wo Go Binärdateien installiert. Führen Sie diesen Befehl aus:

echo $GOPATH/bin
Nach dem Login kopieren

Wenn $GOPATH nicht festgelegt ist, ist der Standardspeicherort normalerweise ~/go/bin.

Jetzt fügen wir dieses Verzeichnis zu Ihrem PATH in Fish hinzu. Öffnen Sie Ihre Fish-Konfigurationsdatei:

nano ~/.config/fish/config.fish
Nach dem Login kopieren

Fügen Sie der Datei die folgende Zeile hinzu:

set -gx PATH $PATH $GOPATH/bin
Nach dem Login kopieren

Wenn $GOPATH nicht festgelegt ist, verwenden Sie den vollständigen Pfad, etwa:

set -gx PATH $PATH ~/go/bin
Nach dem Login kopieren

Speichern Sie die Datei und verlassen Sie den Editor.
Laden Sie Ihre Fish-Konfiguration neu:

 ~/.config/fish/config.fish
Nach dem Login kopieren

Jetzt versuchen Sie es noch einmal mit der Luftzufuhr:

air
Nach dem Login kopieren

Wenn Sie ein Bash-Terminal verwenden, müssen Sie Ihre .~/bashrc-Datei bearbeiten.

Bearbeiten Sie nun die Datei .air.toml

root = "."
tmp_dir = "tmp"

[build]
cmd = "go build -o ./tmp/main ."
bin = "tmp/main"
full_bin = "APP_ENV=dev APP_USER=air ./tmp/main"
include_ext = ["go", "tpl", "tmpl", "html"]
exclude_dir = ["assets", "tmp", "vendor"]
include_dir = []
exclude_file = []
log = "air.log"
delay = 1000 # ms
stop_on_error = true
send_interrupt = false
kill_delay = 500 # ms

[log]
time = false

[color]
main = "magenta"
watcher = "cyan"
build = "yellow"
runner = "green"

[misc]
clean_on_exit = true
Nach dem Login kopieren

Stellen Sie sicher, dass Ihre Gin-Anwendung auf localhost und nicht nur auf :8080 lauscht, um ein besseres Hot-Reload-Verhalten zu erzielen

r.Run("localhost:8080")
Nach dem Login kopieren

Und jetzt statt „run go run main.go“ einfach „air“ ausführen und dann die Magie sehen.

Das obige ist der detaillierte Inhalt vonSo aktivieren Sie Hot Reload in Ihrem Gin-Projekt. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:dev.to
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage