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())
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 }) })
Mengendalikan Permintaan Mentah Tanpa Middleware
Untuk mendapatkan permintaan mentah tanpa middleware, pendekatan alternatif boleh digunakan:
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.
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(); }); });
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!