Rumah > Soal Jawab > teks badan
P粉2084690502023-08-18 00:37:22
Kedengarannya seperti anda mengalami gelagat yang tidak dijangka apabila membuat dua permintaan GET berbeza dalam Posmen apabila menggunakan penghalaan Express.js. Khususnya, apabila anda menghantar permintaan ke laluan kedua (/allUser), anda menerima respons daripada laluan pertama (/:id). Tingkah laku ini tidak konsisten dengan jangkaan anda.
Berikut ialah beberapa perkara yang anda boleh semak untuk menyelesaikan isu:
Perintah Penghalaan: Pastikan susunan penghalaan dalam Penghala Ekspres adalah betul. Laluan dipadankan dalam susunan yang ditakrifkan. Jika laluan /:id ditakrifkan sebelum laluan /allUser, ia mungkin menangkap permintaan yang harus dihantar ke laluan /allUser. Susunan laluan boleh ditukar jika mahu.
Konflik parameter laluan: Pastikan parameter yang ditakrifkan dalam laluan /:id tidak bercanggah dengan sebarang nilai yang mungkin bagi laluan /allUser. Sebagai contoh, jika anda menggunakan parameter kad bebas seperti /:id, ia mungkin secara tidak sengaja sepadan dengan rentetan "allUser" dan mencetuskan laluan yang salah. Jika perlu, parameter laluan boleh diubah suai untuk menjadikannya lebih spesifik.
Route middleware: Semak sama ada terdapat sebarang middleware digunakan pada laluan yang boleh menyebabkan kelakuan yang tidak dijangka. Dalam kes ini, perisian tengah [auth] mungkin mempengaruhi cara penghalaan dikendalikan. Sila semak perisian tengah untuk memastikan ia tidak mengganggu kelakuan biasa penghalaan.
Laluan penghalaan bertindih: Semak semula bahawa laluan penghalaan adalah berbeza dan tidak bertindih. Contohnya, jika laluan laluan ialah /allUser dan /:id, Express tidak seharusnya mempunyai sebarang kesamaran dalam memadankan permintaan masuk ke laluan ini.
Begini cara anda boleh melaraskan takrif laluan anda untuk lebih jelas:
// 在正确的顺序中定义路由 router.get( "/allUser", usersController.getAllUser ); router.get( "/:id", [auth], usersController.getUser );
Perlu diingat bahawa sukar untuk menentukan masalah tanpa melihat kod dan konteks penuh. Walau bagaimanapun, langkah penyelesaian masalah am ini akan membantu anda mengenal pasti dan menyelesaikan masalah tersebut.