Rumah >hujung hadapan web >tutorial js >Bagaimana untuk Menyelesaikan \'Ralat: minta entiti terlalu besar\' dalam Aplikasi Express.js?
Ralat Pengendalian untuk Entiti Permintaan Besar
Apabila bekerja dengan aplikasi Express, anda mungkin menghadapi ralat "Ralat: minta entiti terlalu besar". Ralat ini biasanya berlaku apabila saiz muatan permintaan melebihi had yang ditentukan. Berikut ialah penjelasan tentang cara menyelesaikan isu ini:
Dalam coretan kod yang disediakan, anda mempunyai baris berikut:
app.use(express.limit(100000000));
Barisan ini menggunakan kaedah express.limit() untuk mengehadkan permintaan saiz kepada 100MB (100 juta bait). Walau bagaimanapun, tetapan ini ditindih oleh perisian tengah berikutnya yang menggunakan kaedah bodyParser (tidak ditunjukkan dalam coretan kod).
Konfigurasi Betul Penghurai Badan
Untuk menetapkan meminta had saiz dengan betul, anda harus mengkonfigurasi middleware bodyParser secara eksplisit. Secara lalai, json() digunakan untuk mengendalikan permintaan JSON dan urlencoded() digunakan untuk permintaan data borang. Anda boleh menetapkan had untuk setiap parser ini menggunakan pilihan masing-masing:
app.use(express.json({limit: '50mb'})); app.use(express.urlencoded({limit: '50mb'}));
Sebagai alternatif, anda boleh menggunakan kaedah bodyParser yang kini tidak digunakan dan tetapkan pilihan hadnya:
app.use(express.bodyParser({limit: '50mb'}));
Menentukan Nilai Had
Dalam kes anda, anda melihat 1.0787 MB muatan, yang berada dalam had 100MB yang anda tetapkan. Ini menunjukkan bahawa isu itu mungkin terletak di tempat lain. Sahkan bahawa anda belum mengkonfigurasi mana-mana middleware lain atau perpustakaan pihak ketiga yang mungkin menetapkan had yang lebih ketat.
Menyelesaikan masalah
Jika anda telah mengkonfigurasi badan dengan betul- perisian tengah parser dan mengetepikan mana-mana sumber potensi had yang lain, anda mungkin perlu menyahpepijat kod untuk mengenal pasti di mana had tersebut ditetapkan dengan tidak betul. Pertimbangkan untuk menambah log konsol pada titik strategik dalam perisian tengah anda untuk memeriksa nilai pembolehubah had.
Dalam Express v4.16.0 dan ke atas, anda boleh kembali menggunakan sintaks ringkas app.use(express.limit ()). Walau bagaimanapun, adalah penting untuk ambil perhatian bahawa kaedah bodyParser telah ditamatkan dan harus digantikan dengan body-parser untuk kalis kod anda pada masa hadapan.
Atas ialah kandungan terperinci Bagaimana untuk Menyelesaikan \'Ralat: minta entiti terlalu besar\' dalam Aplikasi Express.js?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!