Rumah  >  Artikel  >  hujung hadapan web  >  Bagaimana untuk Membetulkan \'Ralat: minta entiti terlalu besar\' dalam Express.js?

Bagaimana untuk Membetulkan \'Ralat: minta entiti terlalu besar\' dalam Express.js?

Susan Sarandon
Susan Sarandonasal
2024-11-27 15:09:11411semak imbas

How to Fix the

Menyelesaikan masalah "Ralat: minta entiti terlalu besar" dalam Ekspres

Pengguna Express mungkin menghadapi ralat "Ralat: minta entiti terlalu besar" semasa mengendalikan muatan besar. Isu ini timbul apabila permintaan masuk melebihi had saiz yang dikonfigurasikan.

Menetapkan Had Saiz Permintaan

Untuk menyelesaikan isu ini, pengguna boleh melaraskan had saiz permintaan menggunakan app.use(express. had(saiz)) middleware. Dalam contoh yang diberikan, had ditetapkan kepada 100,000,000 oktet.

Mengesahkan Pengepala Panjang Kandungan

Pastikan bahawa pengepala Panjang Kandungan dalam Fiddler sepadan dengan saiz tatasusunan JSON yang disiarkan. Dalam kes ini, pengepala menunjukkan nilai 1078702 oktet, yang bersamaan dengan 1.0787 megabait.

Penyelesaian Potensi

Satu penyelesaian yang mungkin adalah menggunakan app.use(express.bodyParser({limit : '50mb'})) bukannya app.use(express.limit(saiz)). Pendekatan ini telah dilaporkan berfungsi untuk sesetengah pengguna.

Tampalan Sementara

Jika penyelesaian di atas gagal, tampung sementara boleh digunakan dengan mengubah suai modul badan mentah secara langsung. Dengan menambah had = 52428800; pada baris 10 node_modules/express/node_modules/raw-body/index.js, had akan dipaksa kepada 50 megabait. Perhatikan bahawa ini adalah penyelesaian sementara dan bukan penyelesaian kekal.

Penyelesaian Disyorkan

Untuk penyelesaian yang lebih mantap, disyorkan untuk menggunakan modul penghurai badan dengan Ekspres 4 atau lebih baru. Coretan kod berikut menggambarkan cara mengkonfigurasi had saiz badan:

const bodyParser = require('body-parser');
app.use(bodyParser.json({limit: '50mb'}));
app.use(bodyParser.urlencoded({limit: '50mb'}));

Nota Tambahan:

  • Elakkan menggunakan bodyParser() kerana ia tidak digunakan lagi.
  • Gunakan pilihan lanjutan untuk urlencoded() dalam Express 3.x.
  • Dalam Express 4.16.0 dan ke atas, kaedah sebelumnya untuk menetapkan had (app.use(express.json({limit: '50mb'}))) disokong sekali lagi.

Atas ialah kandungan terperinci Bagaimana untuk Membetulkan \'Ralat: minta entiti terlalu besar\' dalam Express.js?. 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