Rumah >pembangunan bahagian belakang >Golang >Bagaimana untuk Memindahkan Data dengan Berkesan daripada Middleware kepada Pengendali dalam Go?

Bagaimana untuk Memindahkan Data dengan Berkesan daripada Middleware kepada Pengendali dalam Go?

Linda Hamilton
Linda Hamiltonasal
2024-11-09 05:46:02991semak imbas

How to Effectively Transfer Data from Middleware to Handlers in Go?

Pemindahan Data daripada Middleware kepada Pengendali

Dalam pembangunan web moden, middleware dan pengendali sering bekerjasama untuk memproses permintaan. Untuk mengelakkan kod pendua, pemindahan data secara berkesan daripada perisian tengah kepada pengendali adalah penting.

Pertimbangkan senario di mana perisian tengah memintas dan menyediakan data, seperti menghuraikan JWT daripada badan permintaan. Berkongsi data yang dihuraikan ini dengan pengendali menghapuskan pertindihan yang tidak perlu.

Menggunakan Pakej Konteks Gorilla

Jika anda menggunakan kit alat Gorilla, manfaatkan pakej konteksnya. Ini membolehkan anda menetapkan dan mendapatkan semula data daripada konteks permintaan tanpa mengubah suai tandatangan kaedah.

// Middleware
http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
    // Middleware operations
    token := jwtParser(r)
    context.Set(r, "token", token)

    next.ServeHTTP(w, r)
})

// Handler
http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
    token := context.Get(r, "token")
})

Nota: Pakej konteks Gorilla kini dalam mod penyelenggaraan dan disyorkan untuk menggunakan konteks Go asli.Ciri konteks diperkenalkan dalam Go 1.7.

Atas ialah kandungan terperinci Bagaimana untuk Memindahkan Data dengan Berkesan daripada Middleware kepada Pengendali dalam Go?. 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