Bagaimana saya lulus parameter ke middleware?
Jun 13, 2025 am 10:25 AMKaedah lulus parameter dalam middleware bergantung kepada rangka kerja atau persekitaran yang digunakan, tetapi biasanya dilaksanakan oleh fungsi kilang, kelas pilihan, atau secara langsung menyediakan parameter pada masa permohonan. 1. Dalam Express.js, anda boleh mengembalikan middleware melalui fungsi kilang dan lulus parameter apabila memohon, seperti logAction ('Page Log Susur yang Dikunjungi'); 2. Di Laravel, anda boleh menentukan parameter dalam kaedah pemegang kelas middleware, dan menggunakan kolon untuk lulus nilai dalam laluan, seperti middleware ('check-role: admin'); 3. Di samping itu, perhatian harus dibayar sama ada parameter adalah statik atau dinamik, mengekalkan decoupling middleware dan kesesuaian, dan mengendalikan parameter yang tidak sah atau hilang.
Parameter lulus ke middleware bergantung kepada rangka kerja atau persekitaran yang anda gunakan, tetapi idea umum adalah untuk menyediakan data tambahan atau konfigurasi apabila menggunakan middleware. Inilah caranya untuk melakukannya dalam beberapa persekitaran yang sama.
Di express.js (node.js)
Di Ekspres, fungsi middleware boleh menerima parameter di luar standard req
, res
, dan next
. Anda boleh membungkus middleware anda dalam fungsi kilang yang mengambil parameter dan mengembalikan fungsi middleware sebenar.
Contoh:
logak fungsi (mesej) { fungsi kembali (req, res, seterusnya) { console.log (`Tindakan: $ {mesej}`); seterusnya (); }; } app.get ('/route', logAction ('Page Visited User'), (Req, Res) => { res.send ('Hello World'); });
- Fungsi
logAction
adalah kilang yang mengembalikan middleware. - Anda lulus parameter
message
semasa memohon middleware. - Ini membolehkan anda menyesuaikan tingkah laku setiap laluan atau menggunakan kes.
Corak ini amat berguna untuk logik yang boleh diguna semula seperti pembalakan, pengesahan dengan peranan, atau mengehadkan kadar.
Di Laravel (PHP)
Laravel membolehkan parameter lulus ke middleware kedua -duanya apabila menentukan kelas middleware dan apabila menggunakannya dalam laluan.
Tentukan middleware dengan parameter:
Dalam kelas middleware anda, kaedah handle
boleh menerima parameter tambahan:
Pemegang fungsi awam (permintaan $, $ seterusnya, $ peranan) { jika ($ permintaan-> pengguna ()-> hasrole ($ peranan)) { kembali $ seterusnya (permintaan $); } kembali redirect ('/home'); }
Daftar middleware dengan parameter dalam kernel:
'check-role' => \ app \ http \ middleware \ checkrole :: class,
Sapukan middleware dengan parameter dalam laluan:
Laluan :: get ('/admin', fungsi () { // })-> middleware ('check-role: admin');
- Anda menentukan parameter apa yang diharapkan oleh middleware.
- Anda lulus nilai apabila memohon middleware.
- Ia biasanya digunakan untuk kawalan akses berasaskan peranan.
Dalam teras ASP.NET (C#)
Asp.net Core menyokong parameter lulus ke middleware melalui kelas pilihan atau secara langsung dalam persediaan saluran paip.
Menggunakan kelas pilihan:
Tentukan kelas pilihan:
Ucapan Ucapan Kelas Awam { Mesej rentetan awam {get; tetapkan; } }
Buat middleware yang menggunakan pilihan:
kelas awam salammiddleware { swasta requestdelegate _next; swasta swasta swasta _Options; Ucapan AwamMidDleWare (RequestDelegate Seterusnya, iOptions <SreasionalOptions> Options) { _next = Seterusnya; _Options = options.value; } Public Async Task Invoke (HttpContext Context) { menunggu konteks.response.writeAsync (_options.message); menunggu _Next (konteks); } }
Gunakannya dalam Startup.cs
:
app.usemiddleWare <SreatingMidDleWare> (New GreetingOptions {message = "Hello from middleweWare!"});
- Anda merangkumi konfigurasi dalam kelas.
- Middleware menerima objek yang dikonfigurasikan pada masa runtime.
- Ini menjadikan middleware anda bersih dan boleh diuji.
Petua Umum
- Sentiasa pertimbangkan sama ada parameter adalah statik (diketahui pada permulaan) atau dinamik (ditentukan semasa permintaan).
- Gunakan fungsi atau kilang pembungkus apabila anda perlu lulus nilai secara dinamik.
- Elakkan dengan ketat gandingan middleware anda ke logik perniagaan tertentu -simpannya boleh dikonfigurasikan.
- Pastikan middleware anda dengan anggun mengendalikan parameter yang hilang atau tidak sah.
Pada dasarnya itu sahaja.
Atas ialah kandungan terperinci Bagaimana saya lulus parameter ke middleware?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Alat AI Hot

Undress AI Tool
Gambar buka pakaian secara percuma

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Clothoff.io
Penyingkiran pakaian AI

Video Face Swap
Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Untuk mengoptimumkan prestasi lulus parameter fungsi Go, amalan terbaik termasuk: menggunakan jenis nilai untuk mengelakkan penyalinan jenis nilai kecil menggunakan penunjuk untuk menghantar jenis nilai yang besar (struktur menggunakan jenis nilai untuk menghantar hirisan; Dalam amalan, apabila menghantar rentetan JSON yang besar, menghantar penunjuk parameter data boleh meningkatkan prestasi penyahserikatan dengan ketara.

Terdapat dua cara untuk menghantar parameter dalam PHP: panggilan mengikut nilai (parameter diluluskan sebagai salinan nilai, pengubahsuaian dalam fungsi tidak menjejaskan pembolehubah asal) dan lulus melalui rujukan (alamat parameter diluluskan, pengubahsuaian dalam fungsi akan mempengaruhi pembolehubah asal), apabila pembolehubah asal perlu diubah suai Gunakan hantaran rujukan semasa mengira jumlah harga troli beli-belah, yang memerlukan hantaran rujukan untuk mengira dengan betul.

Fungsi PHP boleh menghantar nilai melalui parameter, yang dibahagikan kepada nilai lulus dan rujukan: nilai lulus: pengubahsuaian parameter dalam fungsi tidak akan menjejaskan nilai asal rujukan: pengubahsuaian parameter dalam fungsi akan menjejaskan nilai asal. Selain itu, tatasusunan juga boleh dihantar sebagai parameter untuk operasi seperti mengira jumlah data.

Terdapat tiga cara untuk menghantar parameter penunjuk dalam C++: lulus mengikut nilai, lulus melalui rujukan dan lulus melalui alamat. Melepasi nilai menyalin penunjuk tanpa menjejaskan penunjuk asal melalui rujukan membolehkan fungsi mengubah suai penunjuk asal melalui alamat membolehkan fungsi mengubah suai nilai yang ditunjukkan oleh penunjuk. Pilih kaedah penghantaran parameter yang sesuai mengikut keperluan anda.

Dalam persekitaran berbilang benang, kaedah lulus parameter fungsi adalah berbeza, dan perbezaan prestasi adalah ketara: lulus mengikut nilai: menyalin nilai parameter, selamat, tetapi objek besar mahal. Lulus dengan rujukan: Lulus melalui rujukan adalah cekap, tetapi pengubahsuaian fungsi akan menjejaskan pemanggil. Lulus dengan rujukan tetap: Lulus dengan rujukan tetap, selamat, tetapi menyekat operasi fungsi pada parameter. Melewati penuding: Melepasi penuding adalah fleksibel, tetapi pengurusan penuding adalah kompleks dan penuding berjuntai atau kebocoran memori mungkin berlaku. Dalam penjumlahan selari, lulus melalui rujukan adalah lebih cekap daripada lulus dengan nilai, dan lulus melalui penunjuk adalah yang paling fleksibel, tetapi pengurusan adalah rumit.

Panduan untuk keperluan parameter formal Golang: kaedah lulus parameter, lulus nilai dan lulus alamat Dalam proses pembelajaran bahasa pengaturcaraan Golang, adalah sangat penting untuk memahami kaedah lulus parameter dan konsep lulus nilai dan lulus alamat. Artikel ini akan menyelidiki keperluan parameter formal di Golang, termasuk perbezaan antara kaedah lulus parameter, lulus nilai dan hantaran alamat serta memberikan contoh kod khusus untuk membantu pembaca memahami dengan lebih baik. 1. Kaedah lulus parameter Di Golang, terdapat dua kaedah lulus parameter untuk fungsi: lulus mengikut nilai dan lulus melalui alamat. Nilai lulus (lulus salinan): Apabila fungsi dipanggil, nilai sebenar

Dalam bahasa Go, terdapat dua cara utama untuk menghantar parameter fungsi: penghantaran nilai: menghantar salinan pembolehubah tidak akan menjejaskan pembolehubah asal dalam kod panggilan. Lulus penunjuk: Melepasi alamat pembolehubah membolehkan fungsi mengubah suai terus pembolehubah asal dalam kod panggilan.

C++ ialah bahasa pengaturcaraan yang sangat baik dengan fungsi yang berkuasa dan sintaks yang fleksibel. Dalam pengaturcaraan C++, kita sering perlu menghantar parameter kepada fungsi Apabila menghantar parameter, kaedah lulus parameter menjadi isu yang sangat penting. Artikel ini akan menganalisis secara menyeluruh perbezaan dalam kaedah lulus parameter bagi fungsi C++, termasuk lulus mengikut nilai, lulus melalui rujukan dan lulus melalui penunjuk. 1. Parameter passing by value Dalam C++, apabila kita hantar parameter kepada fungsi, parameter passing by value ialah kaedah yang paling biasa. Melepasi parameter dengan cara nilai
