프런트 엔드 개발이 발전함에 따라 점점 더 많은 애플리케이션이 API 인터페이스를 통해 백엔드 서버와 통신해야 합니다. 그러나 개발자가 직면한 한 가지 문제는 교차 사이트 공격을 방지하기 위해 보안상의 이유로 브라우저에서 도입한 메커니즘인 교차 출처 제한을 우회하는 방법입니다.
프록시는 출처 간 제한을 해결하는 일반적인 방법입니다. 브라우저의 요청을 프록시 서버로 보내고 프록시 서버가 요청을 실제 인터페이스 주소로 전달함으로써 교차 출처 제한을 우회하고 인터페이스에 액세스할 수 있습니다. 이 기사에서는 Node.js의 라우팅 구성 요소를 사용하여 프록시를 구성하는 방법을 다룹니다.
Node.js에는 프록시를 구성하는 여러 옵션이 있습니다. Express를 예로 들면 일반적으로 사용되는 솔루션은 다음과 같습니다.
여기서 기사, 우리는 첫 번째 옵션을 소개합니다.
프록시 기능을 구현하려면 http-proxy-middleware 플러그인을 설치해야 합니다.
$ npm install http-proxy-middleware --save-dev
Express에서는 express.Router() 메서드를 사용하여 라우팅 인스턴스를 생성할 수 있습니다. 각 라우팅 인스턴스에 대해 프록시를 구성할 수 있습니다.
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}`); });
위 코드는 경로를 구성하여 라우팅 주소가 /api인 요청을 http://www.example.com 주소로 프록시합니다.
createProxyMiddleware에서는 여러 옵션을 구성하여 프록시 구성을 사용자 정의할 수 있습니다. 예를 들어, pathRewrite 옵션을 사용하여 실제 인터페이스 주소와 일치하도록 라우팅 주소에서 /api 접두사를 제거하도록 경로를 다시 작성할 수 있습니다.
router.use('/api', createProxyMiddleware({ target: 'http://www.example.com', changeOrigin: true, pathRewrite: { '^/api': '' } }));
위 코드는 프록시 뒤의 경로에서 /api 접두사를 제거합니다.
프록시 구성 외에도 인터셉터를 구성하여 프록시 동작을 맞춤 설정할 수도 있습니다. 인터셉터는 요청과 응답을 처리하는 데 사용됩니다. 예를 들어 요청이 시작되기 전에 헤더 정보를 추가하거나 요청 응답 후에 반환 값을 처리할 수 있습니다.
http-proxy-middleware에서는 onProxyReq 및 onProxyRes 두 가지 옵션을 통해 인터셉터를 구성할 수 있습니다.
// 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); } }));
위 코드에서는 onProxyReq에 Authorization이라는 헤더 정보를 추가하고 onProxyRes에서 반환 값을 처리했습니다.
위의 소개를 통해 http-proxy-middleware 플러그인을 사용하여 라우팅 프록시 기능을 구현하는 방법을 배웠고, 미들웨어를 통해 구현하는 방법도 배웠습니다. 또한 요청과 응답을 처리하도록 인터셉터를 구성하는 방법도 배웠습니다.
Node.js는 프록시 기능을 구현하는 데 도움이 되는 다양한 편리한 도구를 제공하여 개발자가 애플리케이션을 빠르게 구축하고 배포하는 데 도움을 줍니다. 이 기사가 백엔드 개발 작업에서 프록시를 사용하여 사이트 간 통신 문제를 해결하는 데 도움이 되기를 바랍니다.
위 내용은 Node.js에서 라우팅 구성 요소를 사용하여 프록시를 구성하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!