Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimana untuk melaksanakan fail lompat penghalaan di Golang

Bagaimana untuk melaksanakan fail lompat penghalaan di Golang

PHPz
PHPzasal
2023-03-30 09:06:15811semak imbas

Golang ialah bahasa pengaturcaraan yang dibangunkan oleh Google pada tahun 2009 dan digunakan secara meluas dalam pembangunan web dan pembangunan perkhidmatan bahagian belakang. Antaranya, penghalaan adalah bahagian yang paling penting semasa membina aplikasi Web Melalui penghalaan, permintaan yang berbeza boleh diedarkan kepada pemproses yang berbeza. Artikel ini akan memperkenalkan cara melaksanakan fail lompat penghalaan di Golang.

1. Konsep lompat laluan

Lompat laluan bermaksud bahawa dalam aplikasi web, apabila pengguna mengakses URL, pelayan memajukan permintaan ke fungsi yang memproses URL. Contohnya, apabila pengguna melawat https://www.baidu.com, pelayan memajukan permintaan ke halaman utama tapak web Baidu dan mengembalikan fail HTML kepada pengguna di halaman utama.

Di Golang, lompatan penghalaan boleh dilaksanakan melalui perpustakaan pihak ketiga. Kami akan menggunakan perpustakaan gorila/mux di sini untuk melaksanakan lompatan penghalaan.

2. Pasang pustaka mux

Dalam terminal atau command prompt, masukkan arahan berikut untuk memasang pustaka mux:

go get -u github.com/gorilla/mux

3 🎜>

Katakan kita ingin mencipta aplikasi web yang mengandungi tiga fail HTML: index.html, about.html dan contact.html, sepadan dengan URL berikut:

http://localhost/
http://localhost/about
http://localhost/contact
Kita boleh menggunakan mux perpustakaan untuk mencipta peraturan penghalaan dan mengedarkan permintaan URL yang berbeza kepada pemproses yang berbeza. Berikut ialah contoh kod:

package main

import (
    "fmt"
    "net/http"

    "github.com/gorilla/mux"
)

func main() {
    r := mux.NewRouter()

    r.HandleFunc("/", indexHandler)
    r.HandleFunc("/about", aboutHandler)
    r.HandleFunc("/contact", contactHandler)

    fmt.Println("Server listening on port 8080...")
    http.ListenAndServe(":8080", r)
}

func indexHandler(w http.ResponseWriter, r *http.Request) {
    http.ServeFile(w, r, "./index.html")
}

func aboutHandler(w http.ResponseWriter, r *http.Request) {
    http.ServeFile(w, r, "./about.html")
}

func contactHandler(w http.ResponseWriter, r *http.Request) {
    http.ServeFile(w, r, "./contact.html")
}
Dalam kod di atas, kami mula-mula mencipta penghala mux baharu. Kemudian, gunakan kaedah r.HandleFunc() untuk mencipta tiga peraturan penghalaan yang berbeza, setiap satu sepadan dengan URL yang berbeza. Akhir sekali, gunakan kaedah http.ListenAndServe() untuk memulakan pelayan web pada port 8080.

Untuk setiap peraturan, kami menggunakan fungsi pemproses yang berasingan untuk mengendalikan permintaan. Di sini, kami menggunakan kaedah http.ServeFile() untuk mengembalikan fail kepada pengguna. Kaedah ini memerlukan lulus dalam objek output respons, objek permintaan, dan laluan fail untuk dikembalikan.

4. Uji aplikasi

Selepas melengkapkan langkah di atas, kita boleh menggunakan pelayar atau arahan curl untuk menguji aplikasi. Sebagai contoh, anda boleh melihat kandungan index.html dengan mengakses http://localhost/.

$ curl -s http://localhost/ | head -n 10
<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>Index Page</title>
</head>
<body>
    <h1>Welcome to Index Page</h1>
</body>
</html>
Begitu juga, dengan mengakses http://localhost/about dan http://localhost/contact, anda boleh melihat kandungan about.html dan contact.html.

5. Ringkasan

Dalam artikel ini, kami memperkenalkan cara melaksanakan fail lompat penghalaan di Golang supaya aplikasi web boleh mengembalikan fail HTML yang berbeza berdasarkan permintaan URL. Dengan menggunakan perpustakaan gorila/mux, kami boleh membuat peraturan penghalaan dengan mudah dan mengedarkan permintaan kepada pemproses yang berbeza. Saya harap artikel ini dapat membantu anda melaksanakan lompatan penghalaan dalam pembangunan Golang.

Atas ialah kandungan terperinci Bagaimana untuk melaksanakan fail lompat penghalaan di Golang. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn