Rumah >hujung hadapan web >Soal Jawab bahagian hadapan >Cara mengkonfigurasi proksi menggunakan komponen penghalaan dalam Node.js
Dengan pembangunan pembangunan bahagian hadapan, semakin banyak aplikasi perlu berkomunikasi dengan pelayan bahagian belakang melalui antara muka API. Tetapi satu masalah yang dihadapi pembangun ialah cara memintas sekatan silang asal, mekanisme yang diperkenalkan oleh penyemak imbas atas sebab keselamatan untuk mencegah serangan merentas tapak.
Proksi ialah cara biasa untuk menyelesaikan sekatan silang asal. Dengan menghantar permintaan penyemak imbas ke pelayan proksi, dan pelayan proksi memajukan permintaan ke alamat antara muka sebenar, kami boleh memintas sekatan silang asal dan mengakses antara muka. Dalam artikel ini, kami akan membincangkan cara mengkonfigurasi proksi menggunakan komponen penghalaan dalam Node.js.
Dalam Node.js, kami mempunyai berbilang pilihan untuk mengkonfigurasi proksi. Mengambil Express sebagai contoh, penyelesaian yang biasa digunakan adalah seperti berikut:
Dalam artikel ini, kami akan memperkenalkan penyelesaian pertama.
Kami perlu memasang pemalam http-proxy-middleware untuk melaksanakan fungsi proksi.
$ npm install http-proxy-middleware --save-dev
Dalam Express, kita boleh menggunakan kaedah express.Router() untuk mencipta kejadian penghalaan. Kami boleh mengkonfigurasi proksi untuk setiap contoh penghalaan.
const express = require('express'); const { createProxyMiddleware } = require('http-proxy-middleware'); const app = express(); const router = express.Router(); // 配置代理 router.use('/api', createProxyMiddleware({ target: 'http://www.example.com', changeOrigin: true })); app.use(router); // 启动服务器 const server = app.listen(3000, () => { const { address, port } = server.address(); console.log(`Listening on http://${address}:${port}`); });
Kod di atas memproksi permintaan dengan alamat penghalaan /api ke alamat http://www.example.com dengan mengkonfigurasi laluan.
Dalam createProxyMiddleware, kami boleh mengkonfigurasi berbilang pilihan untuk menyesuaikan konfigurasi proksi. Sebagai contoh, kita boleh menggunakan pilihan pathRewrite untuk menulis semula laluan untuk mengalih keluar awalan /api dalam alamat penghalaan untuk memadankan alamat antara muka sebenar:
router.use('/api', createProxyMiddleware({ target: 'http://www.example.com', changeOrigin: true, pathRewrite: { '^/api': '' } }));
Kod di atas akan mengalih keluar laluan masa hadapan /api awalan.
Selain mengkonfigurasi proksi, kami juga boleh mengkonfigurasi pemintas untuk menyesuaikan tingkah laku proksi. Pemintas digunakan untuk memproses permintaan dan respons Contohnya, kita boleh menambah maklumat pengepala sebelum permintaan dimulakan, atau memproses nilai pulangan selepas respons permintaan.
Dalam http-proxy-middleware, kami boleh mengkonfigurasi pemintas melalui onProxyReq dan onProxyRes dua pilihan.
// router.use('/api', createProxyMiddleware({ target: 'http://www.example.com', changeOrigin: true, onProxyReq: (proxyReq, req, res) => { // 在请求发起前添加头部信息 proxyReq.setHeader('Authorization', 'Bearer ' + token); }, onProxyRes: (proxyRes, req, res) => { // 在响应返回后处理返回值 const data = proxyRes.body.toString('utf8'); const newData = JSON.parse(data).result; res.send(newData); } }));
Dalam kod di atas, kami menambahkan maklumat pengepala bernama Authorization dalam onProxyReq dan memproses nilai pulangan dalam onProxyRes.
Melalui pengenalan di atas, kami telah mempelajari cara menggunakan pemalam http-proxy-middleware untuk melaksanakan fungsi proksi penghalaan, dan kami juga telah mempelajari cara melaksanakannya melalui perisian tengah. Di samping itu, kami juga belajar untuk mengkonfigurasi pemintas untuk mengendalikan permintaan dan respons.
Node.js menyediakan banyak alatan mudah untuk membantu kami melaksanakan fungsi proksi, membantu pembangun membina dan menggunakan aplikasi dengan cepat. Saya harap artikel ini akan membantu anda menggunakan proksi untuk menyelesaikan masalah komunikasi merentas tapak dalam kerja pembangunan bahagian belakang anda.
Atas ialah kandungan terperinci Cara mengkonfigurasi proksi menggunakan komponen penghalaan dalam Node.js. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!