Apabila mengerjakan bahagian belakang projek, pengendalian permintaan dan respons adalah penting. Menguruskan permintaan ini dengan cekap adalah penting untuk komunikasi lancar antara pelanggan dan pelayan. Berikut ialah beberapa sifat permintaan biasa dan penting yang setiap pembangun harus biasa.
req.ip dalam Express.js ialah sifat objek permintaan yang menyediakan alamat IP pelanggan yang membuat permintaan. Ia mengembalikan rentetan yang mewakili alamat IP pelanggan.
Mengendalikan Proksi:
Secara lalai, jika apl berada di belakang proksi, req.ip mungkin mengembalikan IP proksi dan bukannya IP pelanggan sebenar. Untuk mendapatkan IP klien yang betul, anda boleh mengkonfigurasi Express untuk mempercayai proksi dengan menetapkan proksi amanah.
app.set("trust proxy", true);
Kini, req.ip akan mengembalikan IP pelanggan yang betul walaupun berada di belakang proksi.
Contoh:
app.get('/', (req, res) => { console.log(req.ip); // Logs the client's IP address res.send(`Your IP address is ${req.ip}`); });
Untuk menggunakan req.cookies, kami perlu memasang pakej yang dipanggil perisian tengah penghurai kuki. Harta ini digunakan untuk mendapatkan kuki yang dihantar oleh pelanggan dalam pengepala Kuki. Cookies dalam req.cookies tidak ditandatangani, bermakna mereka tidak diganggu atau disahkan. Anda boleh menggunakan ini untuk data yang kurang sensitif
import cookieParser from "cookie-parser"; app.use(cookieParser()); app.get('/example', (req, res) => { console.log(req.cookies); // { cookieName: 'cookieValue' } });
Untuk menggunakan req.signedCookies, kami perlu memasang pakej yang dipanggil perisian tengah penghurai kuki. Ini mengandungi kuki yang telah ditandatangani dan disahkan untuk memastikan kuki tersebut tidak diubah. Kuki yang ditandatangani disulitkan dengan kunci rahsia. Req.signedCookies hanya menyimpan kuki yang lulus pengesahan.
Cara Menetapkan Kuki Bertandatangan:
Untuk menetapkan kuki yang ditandatangani, anda boleh menggunakan pilihan yang ditandatangani: benar:
res.cookie('signedCookieName', 'signedValue', { signed: true });
Contoh:
import cookieParser from "cookie-parser"; app.use(cookieParser('your-secret-key')); app.get('/example', (req, res) => { console.log(req.signedCookies); // { signedCookieName: 'signedValue' } });
req.params dalam Express.js ialah objek yang mengandungi parameter laluan daripada URL permintaan. Parameter laluan dinamakan ruang letak dalam laluan laluan dan req.params menyimpan nilai yang disediakan oleh klien dalam URL untuk ruang letak tersebut.
Anda boleh menentukan laluan dengan parameter dengan menggunakan titik bertindih (:) sebelum nama parameter.
Contoh:
app.get('/users/:userId', (req, res) => { console.log(req.params); // { userId: 'valueFromURL' } res.send(`User ID is ${req.params.userId}`); });
req.query dalam Express.js ialah objek yang mengandungi parameter rentetan pertanyaan daripada URL permintaan. Rentetan pertanyaan ialah pasangan nilai kunci yang datang selepas ? dalam URL dan digunakan untuk menghantar data tambahan kepada pelayan. Berbilang pertanyaan boleh dihantar menggunakan &.
Contoh URL:
http://example.com/search?term=flowers&sort=asc
Contoh:
app.get('/search', (req, res) => { console.log(req.query); // { term: 'flowers', sort: 'asc' } res.send(`Search term: ${req.query.term}, Sort order: ${req.query.sort}`); });
Ia mengandungi pasangan nilai kunci data yang dihantar oleh pelanggan. Secara lalai, nilainya tidak ditentukan. Data badan boleh diisi menggunakan perisian tengah terbina dalam seperti express.json dan urlencoded({ extended: true }), atau middleware luaran seperti body-parser.
Kod berikut membantu anda memahami
import express from "express"; const app = express(); app.use(express.json()); app.use(express.urlencoded({ extended: true })); app.get("/user", (req, res) => { const user = req.body; consolo.log(user); res.send(user); })
Semoga anda mendapati ini membantu! Jangan lupa like dan save untuk rujukan masa hadapan. Selamat mengekod!
Atas ialah kandungan terperinci Hartanah Permintaan Ekspres yang penting Setiap Pembangun Perlu Tahu. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!