Mit der Entwicklung der Front-End-Entwicklung müssen immer mehr Anwendungen über API-Schnittstellen mit Back-End-Servern kommunizieren. Ein Problem für Entwickler besteht jedoch darin, Cross-Origin-Beschränkungen zu umgehen, einen Mechanismus, der von Browsern aus Sicherheitsgründen eingeführt wird, um Cross-Site-Angriffe zu verhindern.
Proxy ist eine gängige Methode zur Lösung herkunftsübergreifender Einschränkungen. Indem wir die Anfrage des Browsers an den Proxyserver senden und der Proxyserver die Anfrage an die echte Schnittstellenadresse weiterleitet, können wir ursprungsübergreifende Einschränkungen umgehen und auf die Schnittstelle zugreifen. In diesem Artikel erfahren Sie, wie Sie einen Proxy mithilfe der Routing-Komponente in Node.js konfigurieren.
In Node.js haben wir mehrere Optionen zum Konfigurieren des Proxys. Am Beispiel von Express lauten die häufig verwendeten Lösungen wie folgt:
Hier Artikel, wir Die erste Option wird vorgestellt.
Wir müssen das http-proxy-middleware-Plugin installieren, um die Proxy-Funktion zu implementieren.
$ npm install http-proxy-middleware --save-dev
In Express können wir die Methode express.Router() verwenden, um Routing-Instanzen zu erstellen. Wir können für jede Routing-Instanz einen Proxy konfigurieren.
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}`); });
Der obige Code leitet die Anfrage mit der Routing-Adresse /api an die Adresse http://www.example.com weiter, indem er eine Route konfiguriert.
In createProxyMiddleware können wir mehrere Optionen konfigurieren, um die Proxy-Konfiguration anzupassen. Beispielsweise können wir die Option pathRewrite verwenden, um den Pfad neu zu schreiben und das /api-Präfix aus der Routing-Adresse zu entfernen, damit es mit der tatsächlichen Schnittstellenadresse übereinstimmt:
router.use('/api', createProxyMiddleware({ target: 'http://www.example.com', changeOrigin: true, pathRewrite: { '^/api': '' } }));
Der obige Code entfernt das /api-Präfix aus dem Pfad nach dem Proxy.
Zusätzlich zur Konfiguration des Proxys können wir auch Interceptoren konfigurieren, um das Proxy-Verhalten anzupassen. Interceptoren werden zum Verarbeiten von Anfragen und Antworten verwendet. Wir können beispielsweise Header-Informationen hinzufügen, bevor die Anfrage initiiert wird, oder den Rückgabewert nach der Anfrageantwort verarbeiten.
In der http-Proxy-Middleware können wir den Interceptor über die beiden Optionen onProxyReq und onProxyRes konfigurieren.
// 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); } }));
Im obigen Code haben wir eine Header-Information namens Authorization in onProxyReq hinzugefügt und den Rückgabewert in onProxyRes verarbeitet.
Durch die obige Einführung haben wir gelernt, wie man das http-proxy-middleware-Plug-in verwendet, um die Routing-Proxy-Funktion zu implementieren, und wir haben auch gelernt, wie man es über Middleware implementiert. Darüber hinaus haben wir gelernt, Interceptoren für die Verarbeitung von Anfragen und Antworten zu konfigurieren.
Node.js bietet viele praktische Tools, die uns bei der Implementierung von Proxy-Funktionen unterstützen und Entwicklern helfen, Anwendungen schnell zu erstellen und bereitzustellen. Ich hoffe, dieser Artikel hilft Ihnen dabei, Proxys zu verwenden, um standortübergreifende Kommunikationsprobleme in Ihrer Back-End-Entwicklungsarbeit zu lösen.
Das obige ist der detaillierte Inhalt vonSo konfigurieren Sie einen Proxy mithilfe von Routing-Komponenten in Node.js. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!