Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimanakah saya boleh menyampaikan hujah kepada pengendali Gorilla Mux?

Bagaimanakah saya boleh menyampaikan hujah kepada pengendali Gorilla Mux?

Susan Sarandon
Susan Sarandonasal
2024-11-23 20:00:18751semak imbas

How can I pass arguments to Gorilla Mux handlers?

Menyampaikan Argumen kepada Pengendali Gorilla Mux

Dalam konteks Gorilla Mux, tidak mungkin untuk menyampaikan hujah kepada pengendali menggunakan kaedah HandleFunc . Walau bagaimanapun, terdapat beberapa pendekatan untuk mencapai hasil yang serupa.

Satu pilihan, yang dinyatakan dalam jawapan yang disediakan, adalah untuk mencipta fungsi pembungkus. Ini melibatkan penciptaan fungsi yang mengambil argumen tambahan yang anda ingin sampaikan kepada pengendali dan kemudian memanggil pengendali sebenar dengan argumen tersebut. Contohnya:

db := createDB()
router.HandleFunc("/users/{id}", func(w http.ResponseWriter, r *http.Request) {
    showUserHandler(w, r, db)
}).Method("GET")

Pendekatan ini membolehkan anda menghantar objek pangkalan data ke fungsi showUserHandler sebagai hujah ketiga.

Pilihan lain ialah menggunakan struct untuk merangkum kedua-dua pengendali dan hujah tambahan. Ini membolehkan anda menentukan berbilang pengendali yang beroperasi pada data yang sama tanpa perlu mengulangi kod untuk memulakan data. Contohnya:

type Users struct {
    db *gorm.DB
}

func (users *Users) showHandler(w http.ResponseWriter, r *http.Request) {
    // Access the database object through users.db
}

// Setup
users := &Users{db: createDB()}
router.HandleFunc("/users/{id}", users.showHandler).Method("GET")

Dengan mentakrifkan pengendali pada struct, anda boleh melampirkan keadaan tambahan pada pengendali tanpa mengubah suai fungsi pengendali asas.

Walaupun boleh diterima untuk menggunakan pembolehubah global dalam beberapa kes, penyelesaian ini menyediakan penyelesaian alternatif jika anda lebih suka mengelakkannya.

Atas ialah kandungan terperinci Bagaimanakah saya boleh menyampaikan hujah kepada pengendali Gorilla Mux?. 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