Rumah > Artikel > pembangunan bahagian belakang > Apakah maksud output nyahpepijat Go/Gin - (x pengendali)
editor php Youzi akan menerangkan kepada anda maksud "(pengendali x)" dalam output penyahpepijatan Go/Gin. Dalam rangka kerja Gin bahasa Go, "(x pengendali)" mewakili bilangan perisian tengah yang dilalui oleh permintaan. Middleware ialah mekanisme dalam rangka kerja Gin untuk memproses permintaan. Ia boleh melakukan beberapa operasi sebelum atau selepas permintaan mencapai fungsi pemprosesan penghalaan. Setiap middleware menghantar permintaan kepada middleware seterusnya sehingga ia akhirnya mencapai fungsi pengendali. "x" dalam "(pengendali x)" mewakili bilangan perisian tengah, yang boleh membantu pembangun memahami bilangan perisian tengah yang telah diproses semasa pemprosesan permintaan. Dengan memerhatikan bilangan middleware, pembangun boleh lebih memahami proses pemprosesan permintaan dan memudahkan penyahpepijatan serta mengoptimumkan kod. Harap jawapan ini membantu anda!
Dalam keluaran nyahpepijat go/gin di bawah, apakah maksud (5 pengendali). Seperti yang anda lihat, saya jelas mempunyai lebih daripada 5 pengendali.
[GIN-debug] GET / --> .../handlers.APIDetail (5 handlers) [GIN-debug] POST /signup --> .../handlers.SignUp (5 handlers) [GIN-debug] POST /signin --> .../handlers.SignIn (5 handlers) [GIN-debug] POST /refresh-token --> .../handlers.RefreshToken (5 handlers) [GIN-debug] POST /verify-email --> .../handlers.VerifyEmailVerificationToken (5 handlers) [GIN-debug] POST /resend-verification-email --> .../handlers.ResendEmailVerificationEmail (5 handlers) [GIN-debug] POST /reset-password --> .../handlers.ResetPassword (5 handlers) [GIN-debug] POST /change-password --> .../handlers.ChangePassword (5 handlers) [GIN-debug] PATCH /users/me --> .../handlers.UpdateProfile (5 handlers) [GIN-debug] POST /signout --> .../handlers.SignOut (5 handlers) [GIN-debug] GET /orgs/:id --> .../handlers.GetOrganizations (5 handlers) [GIN-debug] GET /orgs --> .../handlers.GetOrganizations (5 handlers)
Ia mestilah bilangan pengendali dalam setiap rantai pengendali laluan, iaitu bilangan maksimum pengendali (termasuk perisian tengah) yang akan dilaksanakan apabila permintaan dihalakan ke titik akhir tertentu.
Kod yang berkaitan datang daripada sumber gin @terkini:
func debugprintroute(httpmethod, absolutepath string, handlers handlerschain) { if isdebugging() { nuhandlers := len(handlers) handlername := nameoffunction(handlers.last()) if debugprintroutefunc == nil { debugprint("%-6s %-25s --> %s (%d handlers)\n", httpmethod, absolutepath, handlername, nuhandlers) } else { debugprintroutefunc(httpmethod, absolutepath, handlername, nuhandlers) } } }
Jika anda menyediakan beberapa perisian tengah global, cth. menggunakan router.use
, sebelum mengisytiharkan laluan, dan tiada laluan mempunyai perisian tengah untuk setiap laluan, ini menerangkan sebab nombor sentiasa sama.
Sebagai contoh, pertimbangkan perkara berikut:
r.use(func(*gin.context) { fmt.println("first") }) r.get("/foo", func(c *gin.context) { c.status(http.statusok) }) r.use(func(*gin.context) { fmt.println("second") }) r.get("/bar", func(c *gin.context) { c.status(http.statusok) })
Cetakan:
[GIN-debug] GET /foo --> main.main.func2 (2 handlers) [GIN-debug] GET /bar --> main.main.func4 (3 handlers)
Sebab /foo
的链有 first
中间件和处理程序本身 (2),而 /bar
的链有 first
和 second
middleware, ditambah dengan pengendali itu sendiri (3).
Atas ialah kandungan terperinci Apakah maksud output nyahpepijat Go/Gin - (x pengendali). Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!