Rumah > hujung hadapan web > tutorial js > Mengapakah saya mendapat ralat \'Permintaan Entiti Terlalu Besar\' dalam Ekspres dan bagaimana saya boleh membetulkannya?

Mengapakah saya mendapat ralat \'Permintaan Entiti Terlalu Besar\' dalam Ekspres dan bagaimana saya boleh membetulkannya?

Patricia Arquette
Lepaskan: 2024-12-02 03:59:10
asal
748 orang telah melayarinya

Why am I getting the

"Ralat: Minta Entiti Terlalu Besar" dalam Ekspres

Express menghadapi ralat "Minta Entiti Terlalu Besar" apabila permintaan melebihi pratakrif had saiz fail. Ralat ini boleh membingungkan, menyebabkan pembangun menggaru kepala mereka. Mari kita selami isu ini dan teroka penyelesaian.

1. Menetapkan Had Saiz Permintaan

Express menyediakan keupayaan untuk menetapkan had pada saiz maksimum badan permintaan. Dalam kod anda, anda telah menentukan:

app.use(express.limit(100000000));
Salin selepas log masuk

Barisan ini menetapkan had kepada 100 megabait. Setelah meneliti pengepala permintaan dalam Fiddler, anda melihat kandungan panjang 1.0787 megabait, yang berada dalam had yang ditetapkan.

2. Menetapkan Semula Had

Walaupun menetapkan had, Express mungkin tidak mematuhinya. Modul ini terdiri daripada berbilang lapisan, dan dalam kes tertentu, had mungkin akan ditetapkan semula sepanjang perjalanan. Ini boleh menyebabkan ralat berterusan walaupun anda telah menentukan hadnya dengan jelas.

3. Menampal Modul (Tidak Disyorkan)

Sebagai penyelesaian sementara, sesetengah pengguna telah melaporkan kejayaan dengan menampal modul secara terus. Walau bagaimanapun, adalah penting untuk ambil perhatian bahawa ini bukan penyelesaian yang ideal dan harus didekati dengan berhati-hati. Jika anda memutuskan untuk mengambil laluan ini, teruskan mengikut budi bicara anda sendiri.

4. Menggunakan Body-Parser (Express 4 dan Node.js 10.12 Sahaja)

Dalam Express 4 dan ke atas, middleware body-parser harus digunakan bukannya express.bodyParser() untuk mengendalikan badan permintaan. Isytiharkan penghurai anda secara eksplisit seperti berikut:

app.use(body-parser.json({limit: '50mb'}));
app.use(body-parser.urlencoded({limit: '50mb', extended: true}));
Salin selepas log masuk

Jika pilihan lanjutan tidak dinyatakan untuk bodyParser.urlencoded(), amaran akan dilemparkan.

5. Mengalihkan bodyParser ke Atas (Express 4 Sahaja)

Dalam Express 4, pastikan anda meletakkan app.use(bodyParser(...)) sebelum app.use(express.json()) atau app.use(express.urlencoded()) untuk mengelakkan override.

6. Kembali ke Cara Lama (Express 4.16.0 Sahaja)

Dengan Express v4.16.0 dan lebih baharu, anda boleh kembali kepada cara asal mengendalikan badan permintaan:

app.use(express.json({limit: '50mb'}));
app.use(express.urlencoded({limit: '50mb'}));
Salin selepas log masuk

Dengan menggunakan langkah-langkah ini, anda boleh menangani ralat "Minta Entiti Terlalu Besar" dengan berkesan dalam Express. Ingat untuk menggunakan kaedah yang paling sesuai untuk versi Ekspres dan persekitaran anda untuk memastikan operasi lancar.

Atas ialah kandungan terperinci Mengapakah saya mendapat ralat \'Permintaan Entiti Terlalu Besar\' dalam Ekspres dan bagaimana saya boleh membetulkannya?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan