Cara Mengakses Badan Permintaan Penuh dalam Node.js dengan Express: Panduan untuk Pengendalian Permintaan Tengah dan Mentah

DDD
Lepaskan: 2024-10-29 05:41:30
asal
548 orang telah melayarinya

How to Access the Full Request Body in Node.js with Express: A Guide to Middleware and Raw Request Handling

Mengakses Badan Permintaan Penuh dalam Node.js dengan Express

Dalam Node.js, menggunakan Express untuk mengendalikan permintaan POST dan mengakses badan mereka boleh menghadirkan cabaran. Kod yang disediakan gagal untuk mendapatkan semula keseluruhan badan permintaan, mengakibatkan pengecualian. Artikel ini meneroka penyelesaian kepada isu ini dan menangani kemungkinan mendapatkan permintaan mentah tanpa menggunakan express.bodyParser().

Menggunakan Express Middleware

Bermula dengan Express v4. 16, perisian tengah JSON terbina dalam boleh dilaksanakan untuk menghuraikan badan permintaan sebagai JSON dengan berkesan:

app.use(express.json())
Salin selepas log masuk

Perisian tengah ini secara automatik menghuraikan kandungan kandungan ke dalam objek JavaScript yang boleh diakses melalui sifat req.body. Contohnya:

app.post('/test', (req, res) => {
  res.json({ requestBody: req.body })
})
Salin selepas log masuk

Mengendalikan Permintaan Mentah Tanpa Middleware

Untuk mendapatkan permintaan mentah tanpa middleware, pendekatan alternatif boleh digunakan:

  1. Menggunakan sifat request.rawBody:

    Harta ini menyediakan akses kepada badan permintaan mentah yang belum dihuraikan. Walau bagaimanapun, ia memerlukan menetapkan pilihan had dalam bodyParser middleware kepada nilai yang lebih besar daripada jangkaan panjang badan.

  2. Menggunakan middleware tersuai:

    Perisian tengah tersuai boleh ditakrifkan untuk memintas permintaan masuk dan mendapatkan semula isi mentah:

    app.use((req, res, next) => {
      req.rawBody = '';
      req.on('data', (chunk) => { req.rawBody += chunk; });
      req.on('end', () => { next(); });
    });
    Salin selepas log masuk

Adalah penting untuk ambil perhatian bahawa pengendalian badan mentah secara manual adalah lebih kompleks dan boleh menyebabkan overhed prestasi. Penggunaan middleware biasanya disyorkan kerana kesederhanaan dan kecekapannya.

Atas ialah kandungan terperinci Cara Mengakses Badan Permintaan Penuh dalam Node.js dengan Express: Panduan untuk Pengendalian Permintaan Tengah dan Mentah. 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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan