Bagaimana untuk melaksanakan fail lompat penghalaan di Golang

PHPz
Lepaskan: 2023-03-30 09:32:04
asal
810 orang telah melayarinya

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
Salin selepas log masuk

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
Salin selepas log masuk
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")
}
Salin selepas log masuk
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>
Salin selepas log masuk
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!

sumber:php.cn
Kenyataan Laman Web ini
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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!